`「Second」基本思想:將數據流定向(用STL:<algorithm>中的copy()實現定向輸入流到指定的容器)到標準輸入流中,用STL標準庫<algorithm>中的sort()進行範型排序,最後將容器中的數據流再copy()至標準輸出流中。
`「Third」代碼(以下針對int數據排序,根據容器數據類型不同排序不同,比如還可以是字符流類型。Linux終端下結束輸入可是用Ctrl+d):
#include <iostream> #include <vector> #include <iterator> #include <algorithm> #include <cstring> void istream_iterator_sort_int(){ std::vector<int> values;//定義容器和數據類型,容器類型需要支持隨意訪問這一特性。 std::copy(std::istream_iterator<int> (std::cin),std::istream_iterator<int> (),std::back_inserter(values));/*定向輸入數據流到標準輸入流std::cin,每個int數據輸入後enter換行,或者可以將代碼最後的copy()中輸出流迭代器ostream_iterator()中的參數"\n"改爲" ".即每個輸入數據以空格隔開。*/ std::sort(values.begin(),values.end());//調用範型算法庫<algorithm>中的sort() std::cout << "after sort with istream sort and iterator for type <int> : " << std::endl; std::copy(values.begin(), values.end(), std::ostream_iterator<int> (std::cout,"\n"));//將輸出數據流定向到標準輸出流std::cout中。 } int main(int argc, char **argv){ std::cout << "This is a Template_sort for lots of numbers : " << std::endl; istream_iterator_sort_int(); return 0; }就寫到這,扯個蛋收場吧。