sorted.cpp

来自「很经典的书籍」· C++ 代码 · 共 58 行

CPP
58
字号
//: C05:Sorted.cpp
//{bor} (because of bitset in Urand.h)
// Testing template specialization
#include <cstddef>
#include <iostream>
#include "Sorted.h"
#include "Urand.h"
using namespace std;

#define asz(a) (sizeof a / sizeof a[0])

char* words[] = {
  "is", "running", "big", "dog", "a",
};
char* words2[] = {
  "this", "that", "theother",
};

int main() {
  Sorted<int> is;
  Urand<47> rand;
  for(size_t i = 0; i < 15; i++)
    is.push_back(rand());
  for(size_t i = 0; i < is.size(); i++)
    cout << is[i] << ' ';
  cout << endl;
  is.sort();
  for(size_t i = 0; i < is.size(); i++)
    cout << is[i] << ' ';
  cout << endl;

  // Uses the template partial specialization:
  Sorted<string*> ss;
  for(size_t i = 0; i < asz(words); i++)
    ss.push_back(new string(words[i]));
  for(size_t i = 0; i < ss.size(); i++)
    cout << *ss[i] << ' ';
  cout << endl;
  ss.sort();
  for(size_t i = 0; i < ss.size(); i++) {
    cout << *ss[i] << ' ';
    delete ss[i];
  }
  cout << endl;

  // Uses the full char* specialization:
  Sorted<char*> scp;
  for(size_t i = 0; i < asz(words2); i++)
    scp.push_back(words2[i]);
  for(size_t i = 0; i < scp.size(); i++)
    cout << scp[i] << ' ';
  cout << endl;
  scp.sort();
  for(size_t i = 0; i < scp.size(); i++)
    cout << scp[i] << ' ';
  cout << endl;
} ///:~

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?