cb08a_c++_顺序容器的操作1
容器定义的类型别名
begin(闭区间)和end(开区间)成员
{first,last)左闭右开,左包括,右不包括,end()指向最后一个的下一个。
1 /*cb08a_c++_顺序容器的操作1 2 容器定义的类型别名 3 begin(闭区间)和end(开区间)成员 4 {first,last)左闭右开,左包括,右不包括,end()指向最后一个的下一个。 5 6 7 8 */ 9 10 11 #include <iostream> 12 #include <vector> 13 #include <list> 14 #include <deque> 15 using namespace std; 16 17 int main() 18 { 19 vector<int> a; 20 21 list<int> b; //链表没有下表,不能用数组表示 22 deque<int> c; 23 24 //error C2663: “std::vector<int,std::allocator<_Ty>>::push_back”: 2 个重载没有“this”指针的合法转换 25 //ca.push_back(11);//const vector不能直接放数据 26 27 28 29 a.push_back(10); 30 a.push_back(20); 31 a.push_back(30); 32 const vector<int> ca(a);//const可以通过非const vector传入数据,进行初始化。类似于:ca=a; 33 34 b.push_back(100); 35 b.push_back(200); 36 b.push_back(300); 37 38 c.push_back(1); 39 c.push_back(2); 40 c.push_back(3); 41 //for(int i=0;i<a.size();++i)//不要使用,因为int类型不够大,可能vector数据会超出。 42 43 for (vector<int>::size_type i = 0; i < a.size(); ++i) 44 cout << a[i] << endl; 45 ////链表没有下表,不能用数组表示 46 /*for (list<int>::size_type k = 0; k < b.size(); ++k) 47 cout << b[k] << endl;*/ 48 49 for (deque<int>::size_type j = 0; j < c.size(); ++j) 50 cout << c[j] << endl; 51 52 //链表只能用迭代器 53 vector<int>::iterator firsta = a.begin(); 54 vector<int>::iterator lasta = a.end();//end()指向最后一个的下一个 55 56 vector<int>::const_iterator cfirsta = ca.begin();//const_iterator,const迭代器,操作const vector容器 57 vector<int>::const_iterator clasta = ca.end(); 58 59 while (firsta != lasta) 60 { 61 cout <<"迭代器循环: "<< *firsta << endl; 62 ++firsta; 63 } 64 vector<int>::reverse_iterator rfirsta = a.rbegin();//rbegin()逆序迭代器 65 vector<int>::reverse_iterator rlasta = a.rend();//rend()逆序迭代器 66 67 68 vector<int>::size_type a1; 69 vector<int>::iterator a2; 70 vector<int>::const_iterator a3; 71 vector<int>::reverse_iterator a4;//逆序迭代器 72 vector<int>::const_reverse_iterator a5; 73 vector<int>::difference_type a6;//保存容器之间距离 74 75 //泛型程序设计 76 //vector<int>::value_type a7; 77 //vector<int>::reference a8;//引用 78 //vector<int>::const_reference a9; 79 80 list<int>::size_type b1; 81 list<int>::iterator b2; 82 list<int>::const_iterator b3; 83 list<int>::reverse_iterator b4; 84 list<int>::const_reverse_iterator b5; 85 list<int>::difference_type b6; 86 /*list<int>::value_type b7; 87 list<int>::reference b8; 88 list<int>::const_reference b9;*/ 89 90 deque<int>::size_type c1; 91 deque<int>::iterator c2; 92 deque<int>::const_iterator c3; 93 deque<int>::reverse_iterator c4; 94 deque<int>::const_reverse_iterator c5; 95 deque<int>::difference_type c6; 96 /*deque<int>::value_type c7; 97 deque<int>::reference c8; 98 deque<int>::const_reference c9;*/ 99 100 cout << "hello..." << endl; 101 return 0; 102 }