1010using namespace std ;
1111
1212template <class T >
13- struct display {
14- void operator () (const T& x) const {
13+ struct display
14+ {
15+ void operator ()(const T &x) const
16+ {
1517 cout << x << ' ' ;
1618 }
1719};
1820
19-
20- int main () {
21+ int main ()
22+ {
2123 int ia[9 ] = {0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 };
2224 // int ib = iota(ia, ia + 9, 0); // include numeric
2325
2426 vector<int > iv1 (ia, ia + 5 );
2527 vector<int > iv2 (ia, ia + 9 );
2628
2729 // 判断两个序列第一个不匹配点 pair(第一个序列的不匹配点,第二个序列的不匹配点)
28- cout << *(mismatch (iv1.begin (), iv1.end (), iv2.begin ()).first );
29- cout << *(mismatch (iv1.begin (), iv1.end (), iv2.begin ()).second );
30+ cout << *(mismatch (iv1.begin (), iv1.end (), iv2.begin ()).first ) << " " ;
31+ cout << *(mismatch (iv1.begin (), iv1.end (), iv2.begin ()).second ) << endl ;
3032
3133 // 如果序列在区间内相等,equal返回true
32- cout << equal (iv1.begin (), iv1.end (), iv2.begin ());
33- cout << equal (iv1.begin (), iv1.end (), &ia[3 ]);
34- cout << equal (iv1.begin (), iv1.end (), &ia[3 ], less<int >());
34+ cout << equal (iv1.begin (), iv1.end (), iv2.begin ()) << " " ;
35+ cout << equal (iv1.begin (), iv1.end (), &ia[3 ]) << " " ;
36+ cout << equal (iv1.begin (), iv1.end (), &ia[3 ], less<int >()) << endl ;
3537
38+ // 区间区间内全部填 9
3639 fill (iv1.begin (), iv1.end (), 9 );
3740 for_each (iv1.begin (), iv1.end (), display<int >());
41+ cout << endl;
3842
39- fill_n (iv1.begin (), 3 , 7 ); // 从迭代器开始填3个7
43+ // 从迭代器开始填3个7
44+ fill_n (iv1.begin (), 3 , 7 );
4045 for_each (iv1.begin (), iv1.end (), display<int >());
46+ cout << endl;
4147
4248 vector<int >::iterator ite1 = iv1.begin ();
4349 vector<int >::iterator ite2 = ite1; // 指向7
44- advance (ite2, 3 ); // 指向9,前进
50+ advance (ite2, 3 ); // 指向9,前进3
4551
52+ // 将迭代器所指元素对调
4653 iter_swap (ite1, ite2);
4754 cout << *ite1 << ' ' << *ite2 << endl;
4855 for_each (iv1.begin (), iv1.end (), display<int >());
56+ cout << endl;
4957
5058 cout << max (*ite1, *ite2) << endl;
5159 cout << min (*ite1, *ite2) << endl;
@@ -56,13 +64,17 @@ int main() {
5664
5765 swap (*iv1.begin (), *iv2.begin ());
5866 for_each (iv1.begin (), iv1.end (), display<int >());
67+ cout << endl;
5968 for_each (iv2.begin (), iv2.end (), display<int >());
69+ cout << endl;
6070
6171 string stra1[] = {" Jamie" , " JJHou" , " Jason" };
6272 string stra2[] = {" Jamie" , " JJHou" , " Jerry" };
6373
6474 cout << lexicographical_compare (stra1, stra1 + 2 , stra2, stra2 + 2 );
65- cout << lexicographical_compare (stra1, stra1 + 2 , stra2, stra2 + 2 ,
66- greater<string>());
67-
75+ cout << endl;
76+ cout << lexicographical_compare (stra1, stra1 + 2 , stra2, stra2 + 2 , greater<string>());
77+
78+ cout << endl;
79+ return 0 ;
6880}
0 commit comments