• 如何在vector中插入和删除元素?


    在C++的std::vector中插入和删除元素通常使用其成员函数来完成。以下是如何在std::vector中插入和删除元素的示例:

    插入元素

    1. 在末尾插入元素:使用push_back函数。
     
    

    cpp复制代码

    #include
    int main() {
    std::vector v;
    v.push_back(1); // 在vector末尾添加元素1
    v.push_back(2); // 在vector末尾添加元素2
    // ...
    }
    1. 在指定位置插入元素:使用insert函数。
     
    

    cpp复制代码

    #include
    #include // 需要包含这个头文件来使用begin()和end()
    int main() {
    std::vector v = {1, 2, 3};
    v.insert(v.begin() + 1, 4); // 在索引1的位置插入元素4
    // 现在v包含 {1, 4, 2, 3}
    // ...
    }

    你还可以使用迭代器范围来插入多个元素:

     
    

    cpp复制代码

    #include
    #include // 作为示例,插入一个list的元素
    int main() {
    std::vector v = {1, 2, 3};
    std::list lst = {4, 5, 6};
    v.insert(v.end(), lst.begin(), lst.end()); // 在vector末尾插入list的所有元素
    // 现在v包含 {1, 2, 3, 4, 5, 6}
    // ...
    }

    删除元素

    1. 删除末尾元素:使用pop_back函数。
     
    

    cpp复制代码

    #include
    int main() {
    std::vector v = {1, 2, 3};
    v.pop_back(); // 删除vector的最后一个元素
    // 现在v包含 {1, 2}
    // ...
    }
    1. 删除指定位置的元素:使用erase函数,它接受一个迭代器作为参数,表示要删除的元素的位置。
     
    

    cpp复制代码

    #include
    #include // 需要包含这个头文件来使用begin()
    int main() {
    std::vector v = {1, 2, 3, 4, 5};
    v.erase(v.begin() + 2); // 删除索引为2的元素(即元素3)
    // 现在v包含 {1, 2, 4, 5}
    // ...
    }

    你还可以使用迭代器范围来删除多个元素:

     
    

    cpp复制代码

    #include
    #include // 需要包含这个头文件来使用begin()和end()
    int main() {
    std::vector v = {1, 2, 3, 4, 5, 6};
    v.erase(v.begin() + 2, v.begin() + 4); // 删除索引为2到3(不包括4)的元素
    // 现在v包含 {1, 2, 5, 6}
    // ...
    }

    注意:在使用erase函数时,返回的迭代器指向被删除元素之后的元素。如果你计划连续删除多个元素,并且使用erase的返回值来更新你的迭代器,你需要小心处理。此外,由于erase可能会使迭代器失效,因此在循环中删除元素时要特别小心。

  • 相关阅读:
    wireshark测试tcp三次握手与四次挥手
    如何在不同链部署地址完全相同的合约
    739. 每日温度【单调栈】
    【会议分享】2022年第四届计算机视觉与模式识别国际会议(CCVPR 2022)
    直接查看电脑几核芯几线程的方法
    git 提交
    Linux指令(ls、pwd、cd、touch、mkdir、rm)
    The O-one:开源语言模型计算机的革命
    Linux下Jenkins自动化部署SpringBoot应用
    外汇天眼:多位支持加息放缓!美元走弱黄金上涨
  • 原文地址:https://blog.csdn.net/2402_84885073/article/details/139726377