std::vector 用法

构造对象

  • 定义一个空元素的vector对象
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecInt;
}
  • 拷贝定义一个vector对象,元素与另一vector对象相同且相等
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecInt1;
	vecInt1.push_back(1);
	vecInt1.push_back(2);

	std::vector<int> vecInt2(vecInt1);
	std::vector<int> vecInt3 = vecInt1;
	std::vector<int> vecInt4(vecInt1.begin(),vecInt1.end());
}
  • 定义一个元素数量为nNum(容量也为nNum)的vector对象;int类型默认值为0,std::string类型默认值为""
#include <iostream>
#include <vector>
#include <string>

int main()
{
	int nNum = 10;
	std::vector<std::string> vecData(nNum);
}
  • 定义一个元素数量为nNum(容量也为nNum),默认值为"你好世界"的vector对象
#include <iostream>
#include <vector>
#include <string>

int main()
{
	int nNum = 10;
	std::string strValue = "你好世界";
	std::vector<std::string> vecData(nNum, strValue);
}
  • 定义时初始化元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = { 1,2,3,4 };
}

添加元素

  • 容器末尾添加元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData;
	vecData.push_back(1);
}
  • 在指定位置之前插入元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {1,2};
	vecData.insert(vecData.begin(), 5);
	//vecData元素:5,1,2
}
  • 在指定位置之前插入3个5元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {1,2};
	vecData.insert(vecData.begin(), 3, 5);
	//vecData元素:5,5,5,1,2
}
  • 在指定位置之前插入另一vector对象范围内的元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {1,2};
	std::vector<int> vecData2 = { 5,6 };
	vecData2.insert(vecData2.begin(), vecData.begin(), vecData.end());
	//vecData2元素:1,2,5,6
}

获取元素

  • 通过下标获取数据
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	int nValue = vecData[0];
}
  • 通过下标获取数据,同时进行越界检查
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	int nValue = vecData.at(0);
}
  • 获取容器中第一个元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	int nValue = vecData.front();
}
  • 获取容器中最后一个元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	int nValue = vecData.back();
}
  • 获取容器第一个元素的地址
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	int* pValue = vecData.data();
}

删除元素

  • 删除容器末尾元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	vecData.pop_back();
}
  • 删除容器所有元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	vecData.clear();
}
  • 删除指定位置元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	auto iterNext = vecData.erase(vecData.begin());
	//返回被删除元素后面的元素迭代器,如果删除了最后一个元素,返回vecData.end()迭代器
}
  • 删除指定范围元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	auto iterEnd = vecData.erase(vecData.begin(),vecData.end());
	//返回被删除元素后面的元素迭代器,如果删除了最后一个元素,返回vecData.end()迭代器
}

遍历元素

  • 通过索引遍历元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	for (int i = 0; i < vecData.size(); i++)
	{
		int nValue = vecData[i];
	}
}
  • 通过迭代器遍历元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	for (auto iter = vecData.begin(); iter != vecData.end(); iter++)
	{
		int nValue = *iter;
	}
}

成员函数

  • 检查容器是否为空
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	bool bEmpty = vecData.empty();
}
  • 得到元素数量
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	int nSize = vecData.size();
}
  • 通过释放未使用的内存减少内存的使用
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = {10,11,12,13};
	vecData.shrink_to_fit();
}
  • 交换容器元素
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = { 1,2 };
	std::vector<int> vecData2 = {10,11,12,13};
	vecData.swap(vecData2);
}
  • 改变容器中元素个数(如果少,则默认补全;如果多,则删除多余的元素)
int main()
{
	std::vector<int> vecData = { 1,2 };
	int nNum = 4;
	int nDefault = 10;
	vecData.resize(nNum);
	vecData.resize(10, nDefault);
}
  • 赋给vector对象新内容,删除vector中包含的所有元素,并用形参指定的元素替换它们
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = { 1,2 };
	int nNum = 10;
	int nValue = 11;
	vecData.assign(nNum, nValue);
}
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> vecData = { 1,2 };
	std::vector<int> vecData2 = {0};
	vecData.assign(vecData2.begin(), vecData2.end());
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值