#include<iostream>
using namespace std;
#include<vector>
int main()
{
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
//value_type表示容器元素类型
for (vector<int>::value_type value:vec)
{
cout << value << endl;
value = 10;
}
cout << "-------------------------" << endl;
for (vector<int>::value_type value : vec)
{
cout << value << endl;//容器元素值未改变
}
//reference表示容器元素引用,即:reference=value_type&,所以作为左值时会改变容器中元素的值
cout << "-------------------------" << endl;
for(vector<int>::reference value:vec)
{
value = 10;
}
for (vector<int>::iterator it=vec.begin();it!=vec.end();it++)
{
cout << *it << endl;//容器元素全为10
}
//const_iteator即常量迭代器,表示容器元素为常量,不可更改
cout << "-------------------------" << endl;
for (vector<int>::const_iterator it=vec.begin();it!=vec.end();it++)
{
cout << *it << endl;
}
//size_type无符号整数,可表示容器的最大size即元素个数
cout << "-------------------------" << endl;
for (vector<int>::size_type i=0;i!=vec.size();i++)
{
cout << vec.at(i) << endl;
}
//容器初始化方式
cout << "-------------------------" << endl;
vector<int> vec1;//默认构造函数
vector<int> vec2(10);//初始化容器元素个数为10
vector<int> vec3(10, 10);//容器被初始化为含10个值为10的元素
vector<int> vec4 = {10,20,30};//用具体的元素初始化
vector<int> vec5{10,20,30};//用具体的元素初始化
vector<int> vec6(vec5);//使用拷贝的方式初始化容器
vector<int> vec7 = vec6;//隐式转化
vector<int> vec8(vec7.begin(),vec7.end());
for (auto v:vec4)
{
cout << v << endl;
}
}
代码结果图: