1 /*
2 vec.begin() //指向迭代器中第一个元素。
3 vec.end() //指向迭代器中末端元素的下一个,指向一个不存在元素。
4 vec.push_back(elem) //在尾部加入一个数据。
5 vec.pop_back() //删除最后一个数据。
6 vec.capacity() //vector可用空间的大小。
7 vec.size() //返回容器中数据个数。
8 vec.empty() //判断容器是否为空。
9 vec.front() //传回第一个数据。
10 vec.back() //传回最后一个数据,不检查这个数据是否存在。
11 vec.at(index) //传回索引idx所指的数据,如果idx越界,抛出out_of_range。
12 vec.clear() //移除容器中所有数据。
13 vec.erase(iterator) //删除pos位置的数据,传回下一个数据的位置。
14 vec.erase(begin,end) //删除[beg,end)区间的数据,传回下一个数据的位置。注意:begin和end为iterator
15 vec.insert(position,elem) //在pos位置插入一个elem拷贝,传回新数据位置。
16 vec.insert(position,n,elem) //在pos位置插入n个elem数据,无返回值。
17 vec.insert(position,begin,end) //在pos位置插入在[beg,end)区间的数据,无返回值。*/
18 #include<vector>
19 #include<iostream>
20
21 using namespace std;
22
23
24 int main()
25 {
26 vector<int> vec(3,0);
27 vector<int>::iterator iter;
28 vector<int>::iterator begin=vec.begin();
29 vector<int>::iterator end=vec.end();
30 cout<<"vec:";
31 for(iter=begin; iter!=end; iter++)
32 {
33 static std::size_t i=0;
34 cout<<*iter<<",";
35 i++;
36 }
37 cout<<endl;
38 cout<<"size:"<<vec.size()<<endl;
39 cout<<"capacity:"<<vec.capacity()<<endl;
40 //////////////////////////////////////////////////
41 cout<<endl;
42 vec.push_back(1);
43 vec.push_back(2);
44
45 begin=vec.begin();
46 end=vec.end();
47 cout<<"push back 1 and 2 based on above;vec:";
48 for(iter=begin; iter!=end; iter++)
49 {
50 static std::size_t j=0;
51 cout<<*iter<<",";
52 j++;
53 }
54 cout<<endl;
55 cout<<"size:"<<vec.size()<<endl;
56 cout<<"capacity:"<<vec.capacity()<<endl;
57 //////////////////////////////////////////////////
58 cout<<endl;
59 vec.pop_back();
60
61 begin=vec.begin();
62 end=vec.end();
63 cout<<"pop one element based on above;vec:";
64 for(iter=begin; iter!=end; iter++)
65 {
66 static std::size_t k=0;
67 cout<<*iter<<",";
68 k++;
69 }
70 cout<<endl;
71 cout<<"size:"<<vec.size()<<endl;
72 cout<<"capacity:"<<vec.capacity()<<endl;
73 /////////////////////////////////////////////////
74 begin=vec.begin();
75 end=vec.end();
76 cout<<endl;
77 if(vec.empty())
78 {
79 cout<<"vec is empty"<<endl;
80 }
81 else
82 {
83 cout<<"vec is not empty"<<endl;
84 }
85 /////////////////////////////////////////////////
86 cout<<endl;
87 cout<<"based on the above:"<<endl;
88 cout<<" vec.front():"<<vec.front()<<endl;
89 cout<<" vec.back():"<<vec.back()<<endl;
90 begin=vec.begin();
91 end=vec.end();
92 cout<<" size:"<<vec.size()<<endl;
93 cout<<" capacity:"<<vec.capacity()<<endl;
94 cout<<"vec:";
95 for(iter=begin; iter!=end; iter++)
96 {
97 static std::size_t l=0;
98 cout<<*iter<<",";
99 l++;
100 }
101 cout<<endl;
102 ////////////////////////////////////////////////////
103 cout<<endl;
104 cout<<"call at(),based on the above:"<<endl;
105 cout<<" vec.at():"<<vec.at(3)<<endl;
106 begin=vec.begin();
107 end=vec.end();
108 cout<<" size:"<<vec.size()<<endl;
109 cout<<" capacity:"<<vec.capacity()<<endl;
110 cout<<"vec:";
111 for(iter=begin; iter!=end; iter++)
112 {
113 static std::size_t m=0;
114 cout<<*iter<<",";
115 m++;
116 }
117 cout<<endl;
118 //////////////////////////////////////////////////
119 cout<<endl;
120 cout<<"call clear(),based on the above:"<<endl;
121 vec.clear();
122 begin=vec.begin();
123 end=vec.end();
124 cout<<" size:"<<vec.size()<<endl;
125 cout<<" capacity:"<<vec.capacity()<<endl;
126 cout<<"vec:";
127 for(iter=begin; iter!=end; iter++)
128 {
129 static std::size_t m=0;
130 cout<<*iter<<",";
131 m++;
132 }
133 cout<<endl;
134 //////////////////////////////////////////////////
135 cout<<endl;
136 for(int i=1;i<8;i++)
137 {
138 vec.push_back(i);
139 }
140 cout<<"push_back 1,2,3,4,5,6,7 based on above;vec:";
141 begin=vec.begin();
142 end=vec.end();
143 for(iter=begin; iter!=end; iter++)
144 {
145 static std::size_t m=0;
146 cout<<*iter<<",";
147 m++;
148 }
149 ////////////////////////////
150 cout<<endl;
151 vec.erase(vec.begin()+2);
152 cout<<"call vec.erase(3),vec:";
153 begin=vec.begin();
154 end=vec.end();
155 for(iter=begin; iter!=end; iter++)
156 {
157 static std::size_t m=0;
158 cout<<*iter<<",";
159 m++;
160 }
161 cout<<endl;
162 cout<<" size:"<<vec.size()<<endl;
163 cout<<" capacity:"<<vec.capacity()<<endl;
164 //////////////////////////
165 cout<<endl;
166 vec.erase(vec.begin()+1,vec.begin()+3);
167 cout<<"call vec.erase(1,3),vec:";
168 begin=vec.begin();
169 end=vec.end();
170 for(iter=begin; iter!=end; iter++)
171 {
172 static std::size_t m=0;
173 cout<<*iter<<",";
174 m++;
175 }
176 cout<<endl;
177 cout<<" size:"<<vec.size()<<endl;
178 cout<<" capacity:"<<vec.capacity()<<endl;
179 return 0;
180 }
1 //assign函数原型及功能:
2 //void assign(const_iterator first,const_iterator last);
3 //功能:将区间[first,last)的元素赋值到当前的vector中,当前vector会清除掉容器中之前的内容。
4 //void assign(size_type n,const T& x = T());
5 //功能:赋n个值为x的元素到当前vector中,当前vector会清除掉容器中之前的内容。
6 #include <vector>
7 #include <iostream>
8 using namespace std;
9 int main( )
10 {
11 vector<int> v1, v2, v3;
12 vector<int>::iterator iter;
13 for(int i=10; i<60; i+=10)
14 v1.push_back(i);
15 v2.push_back(1);
16 v2.push_back(2);
17
18 cout << "v1 = " ;
19 for (iter = v1.begin(); iter != v1.end(); iter++)
20 cout << *iter << " ";
21 cout << endl;
22
23 cout << "v2 = ";
24 for (iter = v2.begin(); iter != v2.end(); iter++)
25 cout << *iter << " ";
26 cout << endl;
27
28
29 v1.assign(v2.begin(), v2.end());
30 cout << "v1 = ";
31 for (iter = v1.begin(); iter != v1.end(); iter++)
32 cout << *iter << " ";
33 cout << endl;
34
35 v3=v1;
36 v3.assign(4,3) ;
37 cout << "v3 = ";
38 for (iter = v3.begin(); iter != v3.end(); iter++)
39 cout << *iter << " ";
40 cout << endl;
41 return 0;
42 }
1 /*
2 vec.rbegin()//传回一个vector的最后一个数据的指针。
3 vec.rend()// 传回一个vector的第一个数据前一个位置的指针。
4
5 若干种创建方式(vector的构造函数)
6 vector<type> vec
7 vector<type> vec(vec1)
8 vector<type> vec=vec1
9 vector<type> vec(n)
10 vector<type> vec(n,elem)
11 vector<type> vec(begin,end)
12 vector<type> vec{a,b,c,……}
13 vector<type> vec={a,b,c,……}
14 */
15 #include <vector>
16 #include <iostream>
17 using namespace std;
18 int main( )
19 {
20 vector<int> v1, v2, v3;
21 vector<int>::iterator iter;
22 for(int i=10; i<60; i+=10)
23 v1.push_back(i);
24 v2.push_back(1);
25 v2.push_back(2);
26
27 cout << "v1 = " ;
28 for (iter = v1.begin(); iter != v1.end(); iter++)
29 cout << *iter << " ";
30 cout << endl;
31
32 cout << "v2 = ";
33 for (iter = v2.begin(); iter != v2.end(); iter++)
34 cout << *iter << " ";
35 cout << endl;
36
37 vector<int>::reverse_iterator r_iter;
38 cout << "v1 in reverse ";
39 for (r_iter = v1.rbegin(); r_iter != v1.rend(); r_iter++)
40 cout << *r_iter << " ";
41 cout << endl;
42 cout<<"v1.rbegin():"<<*v1.rbegin()<<endl;
43 return 0;
44 }