C++ vector容器的使用

一、容器初始化赋值

1、构造形式
2、指针形式
   vector<int>a(10);//不具有初始值,值不确定

	vector<int>a(10, 1);//初始化10个1;

	vector<int>b(a);//将a的值付给b

	vector<int>b(a.begin(), a.begin() + 3);//将a前面3个值赋值给b

	int c[10] = { 0 };

	vector<int>(c, c + 7);//将数组值赋给容器

	//添加元素
	for (size_t i = 0; i < 20; i++)
	{
		a.push_back(i);
	}

二、访问元素

1、遍历
2、迭代器访问
3、auto变量访问
//1、遍历
	for (size_t i = 0; i < a.size(); i++)
	{
		cout << a[i] << endl;
	}

	//2、迭代器访问
	for (vector<int>::iterator it=a.begin(); it <a.end(); it++)
	{
		cout << *it << endl;
	}
	//auto变量访问
	//单层
	for (auto &&x : a)
	{
		cout << x << endl;
		x = 0;
	}
	//双层
	vector<vector<int>>allnum;
	int i = 0;
	for (auto &x : allnum)
	{

		for (auto &y : allnum[i])
		{
			cout << y << endl;
		}
		i++;
	}

三、插入、删除

//插入元素
	vector<int>demo = { 1,2 };
	vector<int>b = { 4,5 };
	demo.insert(demo.begin() + 1, 3);//1 3 2

	//在某个位置插入
	demo.insert(demo.end(), b.begin(), b.end());// 1 3 2 4 5


	//删除元素
	demo.pop_back();//1 3 2 4
	demo.erase(demo.begin() + 1);// 1 2 4

	for (vector<int>::iterator it=demo.begin(); it <demo.end(); it++)
	{
		if (*it==2)
		{
			it = demo.erase(it);
		}

	}

四、常用函数

    //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列
	sort(a.begin(), a.end());
	
	//对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1
	reverse(a.begin(), a.end());
	
	//把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素
	copy(a.begin(), a.end(), b.begin() + 1);
	
	//在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置
	find(a.begin(), a.end(), 10);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮生有梦三千

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值