Vector小结

STL 中存在了许多的容器、我们对这些容器进行总结归纳, 第一个容器Vector:

vector : 动态数组、 在创建时可以不指定数组的大小、随用随插

容器中元素个数可能与容器的大小不同,即容器大小>= 容器中元素个数;

默认构造函数:

vector<int> v1;

 带参的构造函数:(存放10个元素大小、即都初始化为0)

    vector<int> v2(10); 
    vector<int> v3(10,66);

创建10个元素大小的动态数组、 且初始化都为66;

迭代器:


vector<int>::iterator it = v1.begin();
for (; it != v1.end(); it++) {
    cout << *it << " ";
}
//迭代器   end 代表的是  最后一个元素的后一个位置
//迭代器可以理解为一个指针,指向容器中的元素, 同样迭代器也可以向指针一样加减

赋值操作:

assign(n,x);  //n代表元素个数  x为具体的值   
//会改变原容器的元素个数和具体值,但不会改变原容器的size(当n<size)

assign(v1.begin(),v1.end())   使用 other迭代器赋值

判断容器是否为空:

v1.empty(); //返回值为true/false;

改变容器大小:

	resize(n)  为保留前n个(减小)   元素个数改变  容器大小不变	  
	resize(n,x)  n>元素个数   x为新增的元素的值
	resize(n)  n>元素个数  默认为0

在尾部插入元素/ 删除元素:

v3.push_back(x);  
v3.pop_back();

 在任意位置处插入元素:

//insert函数  
//插入一个
v2.insert(v2.begin(),100); //v2.insert(迭代器位置 , x)  也可以 v2.begin()+n   x为具体的值   
//插入多个        
v2.insert(v2.begin()+3,3,8);   //插入3个8	

容器中元素的存取:

1. 使用下标: v1[i];
2. 使用at()  v1.at(i);
3. 使用接口: v1.front();   v1.end();
//使用前两种方式时,注意判断是否越界!  

 元素删除:

//删除单个/多个元素:
vector<int>::iterator it  = v1.begin();
v1.erase(it);  //删除该位置处的元素;
v1.erase(it,it+2); // 删除多个元素;
返回值为: 删除元素的所在的迭代器的下一个迭代器;因此在删除时需要注意!

//全部删除
v1.clear(); //删除元素、保留空间!

算法:

sort(v1.begin(), v1.end()); //排序 从小到大

reverse(v1.begin(), v1.end()); //  反转

find(v1.begin(), v1.end(),1) // 在容器中查找元素10, 
//若存在则返回其在向量中的位置(迭代器), 若不存在则返回v1.end()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值