C++vector用法详细探索

先讨论比较重要的函数

#include <vector>
#include <algorithm>    //后面相关函数需要包含的头文件
1.正序排序
sort(a.begin(),a.end());
2.倒序排序
sort(a.rbegin(),a.rend());
3.不排序的倒置
reserve(a.begin(),a.end()); //如a中为{1,3,4,2} 则倒置后为{2,4,3,1},

 一.添加元素(int举例)

向vector添加元素方法
1.int b{5}={1,2,3,4,5};
  vector<int>a;
  for (int i=0;i<5;i++)
  a.push_back(b[i]);
  
2.int b[5]={1,2,3,4,5};
  vector<int>a(b,b+5);        //简单记:b为数组首地址,b+5:5为数组长度
  
3.vector<int>a;
  for(int i=0;i<5;i++)
  a.push_back(i);

二.输出方式

1.for(int i=0;i<a.size();i++)    //类似于数组,注意使用a.size()计算a中元素长度
  cout<<a[i]<<" ";
2.for(vector<int>::iterator it=a.begin();it!=a.end();it++)     //定义迭代器it指向vector的a
      cout<<*it<<" ";

三.两个vector间的基本操作

将一个vector中的元素传入到另一个vector中
#include <iostream>
using namespace std;
#include <algorithm>
#include <vector>
int main()
{   
    int b[4] = { 0,1,2,4 };
    int b1[4] = { 5,6,7,8 };
    vector<int>a(b,b+4);
    vector<int>c(b1, b1 + 4);
    for (vector<int>::iterator it = a.begin(); it != a.end(); it++)
        c.push_back(*it);
    for (vector<int>::iterator it = c.begin(); it != c.end(); it++)
        cout << *it << " ";
    system("pause");
    return 0;
}

 四.较为常用的函数

常用函数
a.size()   //获取当前a中的元素长度
a.back()   //返回a最后一个元素  可用cout输出
a.front()  //返回a第一个元素    可用cout输出
a.assign(4,2)  //表示a只含4个元素,每个元素都为2
a.clear()      //清空a中的元素


a.empty()     //判断a是否为空,空时返回true,非空返回false
用法:if(!a.empty())  
      cout<<"a is NOT NULL";

a.push_back(5)  //在a中最后插入一个5
a.pop_back()   //删除a中最后一个元素
a.insert(a.begin(),5) //表示在a.begin()位置插入5,不覆盖,元素后移
a.insert(a.begin()+1,5) //表示在首元素后插入5,不覆盖,元素后移
a.insert(a.begin(),4,5) //表示在第四个元素中插入5,不覆盖,元素后移(以这个为核心)

vector<int>a;
vector<int>b;
a.swap(b)    //将a中的元素与b中的元素进行交换(整体性)

 五、容器删除指定元素(迭代器iterator)

//以伪代码示例

vector<string>book_name;
for (vector<string>::iterator it = book_name.begin(); it != book_name.end(); )   //注意迭代器的用法
        if (*it == n)                    //注意是*it
        {
            it = book_name.erase(it);
            cout << "图书删除成功!" << endl;
        }
        else
            ++it;
原文地址:https://www.cnblogs.com/god-for-speed/p/10835499.html