许多C++开源库(stl,opencv,ros和blas等)都使用了大量的泛型编程的思想,如果不理解这些思想,将很难看懂代码,而《泛型编程与STL》一书对理解泛型编程思想非常的有帮助,这里整理第二章的一些实现代码。
1.排序元素
#include <iostream> #include <vector> #include <algorithm> #include <ostream> #include <iterator> using namespace std; int main(int argc, char** argv) { vector<string> V; string tmp; while (getline(cin, tmp)) { if (tmp == "") break; // 回车结束 V.push_back(tmp); } // sort(V.begin(), V.end());// 升序 sort(V.begin(), V.end(), greater<string>()); // 降序 copy(V.begin(), V.end(), ostream_iterator<string>(cout, " ")); return 0; }
运行结果
输入: 1 2 3 4 5 6 7 排序输出: 7 6 5 4 3 2 1
2.查找元素
#include <string.h> #include <iostream> #include <vector> #include <algorithm> #include <ostream> #include <iterator> using namespace std; // 通常的查找方法,通过' '来结束查找 char* strchr(char *s, int c) { while (*s != '