c++vector一些常用方法

增删查改

在C++中,可以使用以下方法对vector进行增删查改操作:

  1. 增加元素:

    • push_back(element): 在vector的末尾添加一个元素。
    • insert(iterator, element): 在指定位置之前插入一个元素。
  2. 删除元素:

    • pop_back(): 删除vector的末尾元素。
    • erase(iterator): 删除指定位置的元素。
    • erase(start_iterator, end_iterator): 删除指定范围内的元素。
  3. 访问元素:

    • operator[]: 使用索引访问指定位置的元素。
    • at(index): 使用索引访问指定位置的元素,同时会进行边界检查。
  4. 修改元素:

    • operator[]: 使用索引修改指定位置的元素。
    • at(index): 使用索引修改指定位置的元素,同时会进行边界检查。

下面是一些示例代码,展示了如何使用这些方法进行增删查改操作:

#include <iostream>
#include <vector>

int main() {
    vector<int> nums;

    // 增加元素
    nums.push_back(5);
    nums.push_back(10);
    nums.insert(nums.begin(), 3);
    // 在位置 index = 2 之前插入元素 10
    auto it = numbers.begin() + 2;
    numbers.insert(it, 10);

    // 删除元素
    nums.pop_back();
    nums.erase(nums.begin() + 1);

    // 访问元素
    cout << "元素个数:" << nums.size() << endl;
    cout << "第一个元素:" << nums[0] << endl;
    cout << "第二个元素:" << nums.at(1) << endl;

    // 修改元素
    nums[0] = 7;
    nums.at(1) = 12;

    // 遍历元素
    for (int num : nums) {
        cout << num << " ";
    }
    cout << endl;

    return 0;
}

 注意索引和iterator区别:

下边是gpt的回答,可以参考:

索引和迭代器是用于访问容器元素的不同方式。

索引是一种用于访问容器元素的整数值,它表示元素在容器中的位置。对于支持随机访问的容器(如 vectorarray),可以使用索引来直接访问和修改容器中的元素。索引从 0 开始,并依次递增,通过索引可以快速定位到容器中的元素。

迭代器是一种更通用的访问容器元素的方式,它是一种类似指针的对象,可以指向容器中的特定位置。迭代器提供了比索引更灵活的访问方式,允许在容器中进行遍历、访问和修改操作。迭代器可以通过容器的成员函数获得,如 begin() 和 end(),或者通过其他迭代器运算符进行计算和移动。

主要区别如下:

  1. 精确度:索引是一个精确的整数值,直接指示元素在容器中的位置,而迭代器是一个更抽象的概念,可以表示容器中的位置,但没有具体的数值表示。

  2. 支持程度:索引可以用于支持随机访问的容器,如 vector 和 array,而迭代器可以用于各种不同类型的容器,包括不支持随机访问的容器,如 list 和 set

  3. 功能:索引可以用于直接访问和修改容器中的元素,而迭代器除了访问和修改外,还提供了其他操作,如迭代器的移动、比较和解引用等。

在使用容器时,可以根据具体的需求和操作类型选择使用索引或迭代器。索引适用于需要直接访问和修改元素的情况,而迭代器适用于更通用的遍历和操作容器元素的场景。

注意: 

在使用迭代器遍历容器时,通常使用 begin() 到 end() 来表示范围,其中 begin() 指向第一个元素,而 end() 指向最后一个元素后面的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值