C++中vector容器所包含的一些方法

vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。使用vector 需要在头文件中增加 #include <vector>

vector其实是一个模板,我们在使用时必须指定元素的类型,如声明一个int类型的vector,

vector<int> test; //声明一个int类型的vector叫test。

vector初始化:

  vector<int> test(10,-1); // test初始化为含有10个元素值为-1的vector容器。

  或  vector<int>  test={1,2,3,4};  //test含有元素为1,2,3,4这4个元素,这是c++新的标准,有的编译器可能不支持。

如何动态的添加元素到vector中呢?

1. push_back()  //  使用vector中的成员函数push_back()可以往vector中添加函数。长度不限。

可以通过下标修改、访问指定位置的元素,如test[2]访问vector中的第3个元素,与数组类似。

通过迭代器访问修改vector中的元素,如

        vector<int>::iterator it;

        for(it=test.begin();it!=test.end();it++)     //vector中的begin()成员函数获得第一个元素,end()获得最后一个函数。

             cout<<*it<<"   ";    //  输出vector中的所有元素。  这里也可以修改元素的值 如 *it=10,将元素的值改为10;

2. at(int index)  // 获得指定下标的元素。  

3. size()  // 获得vector的元素的个数。

4. empty()  // 判断vector是否为空,为空返回true。

5. erase()   // 从指定容器删除指定位置的元素或某段范围内的元素,指向的是删除元素的下一个元素。返回值是一个迭代器.

  特别注意:

  如vector中有: 3  10  10  6  9  15

一一遍历容器找到元素值为10,然后一一删除

  1. for(Iter = v1.begin(); Iter != v1.end(); Iter++) 
  2.   if(*Iter == 10) 
  3.   { 
  4.       v1.erase(Iter); //这里可能会出现错误(当调用erase()后Iter迭代器就失效了,变成了一野指针。)最好还是采用下面修改后的方式,
  5.   } 
  6. }
修改后的代码为:

  1. for(Iter = v1.begin(); Iter != v1.end(); Iter++) 
  2.   if(*Iter == 10) 
  3.   { 
  4.    Iter = v1.erase(Iter);//Iter为删除元素的下一个元素的迭代器
  5.   }
最后vector中的元素为:3  10  6  9   15

注意:这里只删除了一个10,原因是erase函数返回的是删除元素的下一个元素,然后这后面还有Iter++,所以就跳过了后面那个10.

  

 clear()     // 移除容器中所有数据。

pop_back()       // 删除最后一个数据。

insert(pos,elem)    // 在pos位置插入一个elem拷贝,传回新数据位置。

c1.swap(c2)
swap(c1,c2)        // 将c1和c2元素互换。

vector提供了erase(),pop_back(),clear()来删除数据。


温馨提示: 对于list删除元素可以使用remove方法。

例子如下:  

   list<int> a;  

    a.push_back(1);  
    a.push_back(6);  
    a.push_back(3);  
    a.push_back(6);  
    a.push_back(6);  
    a.push_back(2);  
  
    list<int>::iterator itor;  
    a.remove(6);
    for(itor=a.begin();itor!=a.end();itor++)
cout<<*itor<<"  ";

显示结果为:1  3  2。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++vector是一个动态数组容器,可以存储任意类型的元素。它提供了许多方法来方便地操作和管理数组。 以下是C++vector容器的一些常用用法: 1. 包含头文件: ```cpp #include <vector> ``` 2. 创建Vector对象: ```cpp std::vector<T> vec; // 创建一个空的vector std::vector<T> vec(size); // 创建一个具有指定大小的vector std::vector<T> vec(size, value); // 创建一个具有指定大小和初始值的vector ``` 3. 添加元素: - 使用push_back()方法vector末尾添加元素: ```cpp vec.push_back(element); ``` - 使用insert()方法在指定位置插入元素: ```cpp vec.insert(vec.begin() + index, element); ``` 4. 访问元素: - 使用下标运算符[]访问指定索引位置的元素: ```cpp T element = vec[index]; ``` - 使用at()方法访问指定索引位置的元素,可以进行越界检查: ```cpp T element = vec.at(index); ``` 5. 获取容器大小: ```cpp int size = vec.size(); // 获取容器元素的个数 ``` 6. 遍历容器: - 使用for循环遍历: ```cpp for (int i = 0; i < vec.size(); ++i) { // 处理vec[i] } ``` - 使用迭代器遍历: ```cpp for (auto it = vec.begin(); it != vec.end(); ++it) { // 处理*it } ``` - 使用C++11的范围for循环遍历: ```cpp for (const auto& element : vec) { // 处理element } ``` 这些只是vector容器的一些基本用法,还有许多其他方法可以用于插入、删除、修改和查找元素。你可以根据具体需求选择适合的方法来操作vector容器

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值