Vector de C++STL (Parte básica 2)

P3: ¿Qué funciones miembro contiene el vector?

función miembro función función
comenzar() Devuelve un iterador que apunta al primer elemento del contenedor.
fin() Devuelve un iterador que apunta a la posición después del último elemento del contenedor, generalmente se usa junto con begin()
tamaño() devuelve el número real de elementos
redimensionar() Cambiar el número de elementos reales
vacío() Determine si hay un elemento en el contenedor, si no hay ningún elemento, devuelva verdadero; de lo contrario, devuelva falso
insertar() Insertar uno o más elementos en la posición especificada
borrar() eliminar un elemento o un bloque de elementos
claro() Eliminar todos los elementos, el tamaño del contenedor se convierte en 0
intercambio() intercambia todos los elementos de dos contenedores
hacer retroceder() Agregar un elemento al final de la secuencia
pop_back() elimina elementos del final de la secuencia

Nota: El contenedor de vectores contiene muchas funciones miembro, solo algunas de ellas se enumeran aquí

1. funciones push_back() y pop_back

vector v1={
    
    1,2,3,4,5};
      v1.push_back(6);//在末尾添加6
      for (int i = 0; i < v1.size(); ++i) {
    
    
          cout<<v1.at(i)<<' ';
      }
      **结果:1 2 3 4 5 6
vector v1={
    
    1,2,3,4,5};
      v1.pop_back();//不需要参数
      for (int i = 0; i < v1.size(); ++i) {
    
    
       cout<<v1.at(i)<<' ';
      }
      **结果·:1 2 3 4

función de intercambio 2.swap()

La función de intercambio se puede utilizar para intercambiar el contenido de dos contenedores de vectores , vea el ejemplo:

int a[5]={
    
    1,2,3,4,5};
    vector<int> v1,v2;   
    v1.assign(a,a+5);   //初始化v1={1,2,3,4,5}
    v2.assign(3,6);     //初始化v2={6,6,6}
    v1.swap(v2);        //swap()实现vector容器交换
    //以下为输出容器元素,检测结果
    for (int i = 0; i < v1.size(); ++i) {
    
    
        cout<<v1[i]<<' ';
    }
    cout<<endl;
    for (int i = 0; i < v2.size(); ++i) {
    
    
        cout<<v2[i]<<' ';
    }
    cout<<endl;
    **结果:6 6 6 
           1 2 3 4 5
           //实现了交换

3. insertar () función de inserción

  • La forma más fácil de insertar datos en una ubicación específica está v.insert(pos,x);aquíPuntero para posición posPara determinar, x es el dato a insertar, y existen otras formas de inserción, ver ejemplos:
vector<int> v1, v2;
    v1 = {
    
    1, 2, 3, 4, 5};
    //指定位置插入元素
    v1.insert(v1.begin() + 2, 100);//第一个元素为指针
    for (int i = 0; i < v1.size(); ++i) {
    
    
        cout << v1.at(i) << ' ';
    }
    cout << endl;
    //**结果:1 2 100 3 4 5  //指针指向的位置变成指定数据,后面的元素依次后移

    //指定位置插入多个元素
    v1.insert(v1.begin(), 3, 99);
    for (int i = 0; i < v1.size(); ++i) {
    
    
        cout << v1.at(i) << ' ';
    }
    cout << endl;
    //**结果:99 99 99 1 2 100 3 4 5

    //指定位置插入区间数据
    v2 = {
    
    1, 2, 3, 4, 5};
    int b[5] = {
    
    10, 20, 30, 40, 50};
    v2.insert(v2.begin() + 1, b + 1, b + 3);
    for (int i = 0; i < v2.size(); ++i) {
    
    
        cout << v2.at(i) << ' ';
    }
    cout << endl;
    //**结果:1 20 30 2 3 4 5 

4.empty() juicio función vacía

vector<int> v1, v2;
    v1 = {
    
    1, 2, 3, 4, 5};
    cout << "v1=" << v1.empty() << endl;
    cout << "v2=" << v2.empty() << endl;
    **结果:v1=0//代表空
           v2=1

5.resize() para cambiar la función de longitud del contenedor

  • Reducir la longitud, si hay un elemento en la posición reducida, el elemento se eliminará
vector<int> v1; //如果长度缩小,会将后面的元素删除
    v1 = {
    
    1, 2, 3, 4, 5};
    v1.resize(3);
    for (int i = 0; i < v1.size(); ++i) {
    
    
        cout << v1[i] << ' ';
        **结果:1 2 3 //原本是5个元素,当长度减小为3,原本后面的元素就被删除了
    }
  • aumentar la longitud
vector<int> v1, v2;
    int a[5] = {
    
    1, 2, 3, 4, 5};
    v2.assign(a, a + 5);
    v2.resize(8);  //传入的参数要大于原来的容器长度
    for (int i = 0; i < v2.size(); ++i) {
    
    
        cout << v2[i] << ' ';
    }
    cout << endl;
    //结果:1 2 3 4 5 0 0 0   //增加的位置会自动补0

También puede especificar el valor del área extendida

vector<int> v1, v2;
    int a[5] = {
    
    1, 2, 3, 4, 5};
    v2.assign(a, a + 5);
    v2.resize(8,10);   //第一个参数为要扩展的长度,第二个参数为指定数值
    for (int i = 0; i < v2.size(); ++i) {
    
    
        cout << v2[i] << ' ';
    }
    cout << endl;
    **结果:1 2 3 4 5 10 10 10

6. erase () función de eliminación

vector<int> v1, v2;
    v1 = {
    
    1, 2, 3, 4, 5};
    v1.erase(v1.begin() + 2);//注意传入的是指向要删除数据的指针!
    for (int i = 0; i < v1.size(); ++i) {
    
    
        cout << v1.at(i) << ' ';
    }
    cout << endl;
    //**结果:1 2 4 5

7.clear () borrar función

vector<int> v1, v2;
    v1 = {
    
    1, 2, 3, 4, 5};
    v1.clear();
    cout << v1.empty();
    cout << endl;
    //结果:1 代表容器v1为空

Supongo que te gusta

Origin blog.csdn.net/weixin_74334323/article/details/130179394
Recomendado
Clasificación