void printVector(vector<int>& v)
{
for (vector<int>::iterator it = v.begin();it != v.end();it++)
cout << (*it)<<" ";//it类似指针
cout << endl;
}
//默认无参构造
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i);
printVector(v1);
//区间拷贝构造
vector<int> v2(v1.begin(), v1.end());
printVector(v2);
//n个element方式构造
vector<int> v3(10, 100);//传入10个100
printVector(v3);
//拷贝构造
vector<int> v4(v3);
printVector(v4);
//赋值操作
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i);
printVector(v1);
//等号赋值操作
vector<int> v2;
v2 = v1;
printVector(v2);
//assign赋值
vector<int> v3;
v3.assign(v2.begin(), v2.end());
printVector(v3);
//assign n个相同元素赋值
vector<int> v4;
v4.assign(10, 99);
printVector(v4);
//容器的容量和大小操作
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i);
printVector(v1);
if (v1.empty()) //为真代表容器为空
cout << "v1空" << endl;
else
cout << "v1不为空" << endl;
cout << "v1的容量为" << v1.capacity() << endl;
cout << "v1的大小为" << v1.size() << endl;
v1.resize(15,10);//重新指定大小,可指定默认填充值
printVector(v1);
cout << "v1的容量为" << v1.capacity() << endl;
cout << "v1的大小为" << v1.size() << endl;
v1.resize(5);
printVector(v1); //重指定变短了,则会删除后面多的数据
//容器的删除和插入//
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i); //尾插法插入数据
printVector(v1);
//尾删法
v1.pop_back(); //删除末尾的元素
printVector(v1);
//插入
v1.insert(v1.begin(), 100); //再开始处插入100 第一个参数是迭代器
printVector(v1);
v1.insert(v1.begin(),2,1000); //再开始处插入2个1000 第一个参数是迭代器
printVector(v1);
v1.insert(v1.begin()+2, 2, 5 ); //再第三个元素处插入2个5 第一个参数是迭代器
printVector(v1);
//删除
v1.erase(v1.begin()); //删除头的第一个元素
printVector(v1);
v1.erase(v1.begin(),v1.end()); //删除所有元素 输出会变成换行
printVector(v1);
//vector容器中数据获取//
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i);
//利用[]方式访问数组中元素
for (int i = 0;i < v1.size();i++)
cout << v1[i] << " ";
cout << endl;
//利用at方式访问元素
for (int i = 0;i < v1.size();i++)
cout << v1.at(i)<<" ";
cout << endl;
//获取第一个元素
cout << "第一个元素为: " << v1.front() << endl;
//获取最后一个元素
cout << "最后一个元素为: " << v1.back() << endl;
//vector 互换容器//
vector<int> v1;
for (int i = 0;i < 10;i++)
v1.push_back(i);
printVector(v1);
vector<int> v2;
for (int i = 10;i >0;i--)
v2.push_back(i);
printVector(v2);
cout << "交换后容器数据" << endl;
v1.swap(v2); //v1与v2进行交换
printVector(v1);
printVector(v2);
void test02()
{
vector <int> v;
for (int i = 0;i < 100000;i++)
v.push_back(i);
cout << "v的容量 : " << v.capacity() << endl;
cout << "v的大小 : " << v.size() << endl;
//重新指定大小
v.resize(3);
cout << "v的容量 : " << v.capacity() << endl;
cout << "v的大小 : " << v.size() << endl;
vector<int>(v).swap(v); //利用swap收缩空间 (v)这样创建相当于匿名对象,拷贝v元素的内容
cout << "v的容量 : " << v.capacity() << endl;
cout << "v的大小 : " << v.size() << endl;
}