#include<iostream>
#include<vector>
void vectorPrint(std::vector<int>& v)
{
for (std::vector <int>::iterator it = v.begin(); it != v.end(); it++)
std::cout << *it << " ";
std::cout << std::endl;
} //输出vector
void test01()
{
std::vector<std::vector<int>>v;
std::vector <int>v1;
std::vector <int>v2;
std::vector <int>v3;
std::vector <int>v4;
for (int i = 0; i < 4; i++)
{
v1.push_back(i);
v2.push_back(i + 1);
v3.push_back(i + 2);
v4.push_back(i + 3);
}
v.push_back(v1);
v.push_back(v2);
v.push_back(v3);
v.push_back(v4);
for (std::vector<std::vector <int>>::iterator it = v.begin(); it != v.end(); it++)
{
for (std::vector <int>::iterator vit = (*it).begin(); vit != (*it).end(); vit++)
std::cout << *vit << " ";
std::cout << std::endl;
}
} //二维vector数组用迭代器使用
void test02()
{
//创建vector
std::vector <int>v(5, 19); //初始化v中为5个19
vectorPrint(v);
std::vector <int>v1(v.begin(), v.end());//v1为v的开头到结尾 v1={19,19,19,19,19}
vectorPrint(v1);
std::vector<int>v2;
vectorPrint(v2);
std::vector<int>::iterator it=v.begin();
//赋值vector
v2 = v1; //v1中的元素赋值给v2
v2.assign(10, 100); //v2中有10个100
if (v.empty()) //empty()判断v中的元素是否为空,为空返回true
std::cout <<"v为空:" << v.empty() << std::endl;
else
std::cout <<"v不为空:" << v.empty() << std::endl;
std::cout <<"v的容量:" << v.capacity() << std::endl; //返回v的容量
std::cout << "v的元素数量" << v.size() << std::endl; //返回v中元素的数量
v.resize(7,2); //重新指定v的大小 长度过长的用2补齐,默认为零
vectorPrint(v); //长度不足删去后边的元素
v.push_back(100); //在v后边加上一个元素100
vectorPrint(v);
v.pop_back(); //删除最后一个元素
vectorPrint(v);
v.insert(v.begin(), 99); //在v中的首元素插入99;注意为迭代器
vectorPrint(v);
v.insert(v.begin(), 5, 25); //在v开始插入5个25
vectorPrint(v);
v.erase(v.begin()); //删除首位置的元素
vectorPrint(v);
v1.clear(); //清空v1所有元素
vectorPrint(v1);
std::cout << v[1] << std::endl;
std::cout << v.at(1) << std::endl; //访问1位置的元素
std::cout << v.front() << std::endl; //访问首元素
std::cout << v.back() << std::endl; //访问最后一个元素
v.swap(v1);
vectorPrint(v);
vectorPrint(v1); //v1与v元素互换
v1.swap(v);
std::vector <int>(v).swap(v); //使v的容量变成v中元素个数的容量,缩小内存,从vector<int>(v)为匿名对象,用完之后会被回收释放
v.reserve(100); //v预留100个元素的容量,但是v中其他位置没有元素,只有内存空间
}
int main()
{
test01();
test02();
return 0;
}
C++stl中的vector用法
最新推荐文章于 2024-01-29 11:30:43 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)