vector容器

岁酱吖の 提交于 2020-02-28 13:47:30

 

  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 }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!