如何在vector中插入和删除元素?
在C++的std::vector中插入和删除元素通常使用其成员函数来完成。以下是如何在std::vector中插入和删除元素的示例:
插入元素
- 在末尾插入元素:使用
push_back函数。
cpp复制代码
#include <vector> | |
int main() { | |
std::vector<int> v; | |
v.push_back(1); // 在vector末尾添加元素1 | |
v.push_back(2); // 在vector末尾添加元素2 | |
// ... | |
} |
- 在指定位置插入元素:使用
insert函数。
cpp复制代码
#include <vector> | |
#include <iterator> // 需要包含这个头文件来使用begin()和end() | |
int main() { | |
std::vector<int> v = {1, 2, 3}; | |
v.insert(v.begin() + 1, 4); // 在索引1的位置插入元素4 | |
// 现在v包含 {1, 4, 2, 3} | |
// ... | |
} |
你还可以使用迭代器范围来插入多个元素:
cpp复制代码
#include <vector> | |
#include <list> // 作为示例,插入一个list的元素 | |
int main() { | |
std::vector<int> v = {1, 2, 3}; | |
std::list<int> lst = {4, 5, 6}; | |
v.insert(v.end(), lst.begin(), lst.end()); // 在vector末尾插入list的所有元素 | |
// 现在v包含 {1, 2, 3, 4, 5, 6} | |
// ... | |
} |
删除元素
- 删除末尾元素:使用
pop_back函数。
cpp复制代码
#include <vector> | |
int main() { | |
std::vector<int> v = {1, 2, 3}; | |
v.pop_back(); // 删除vector的最后一个元素 | |
// 现在v包含 {1, 2} | |
// ... | |
} |
- 删除指定位置的元素:使用
erase函数,它接受一个迭代器作为参数,表示要删除的元素的位置。
cpp复制代码
#include <vector> | |
#include <iterator> // 需要包含这个头文件来使用begin() | |
int main() { | |
std::vector<int> v = {1, 2, 3, 4, 5}; | |
v.erase(v.begin() + 2); // 删除索引为2的元素(即元素3) | |
// 现在v包含 {1, 2, 4, 5} | |
// ... | |
} |
你还可以使用迭代器范围来删除多个元素:
cpp复制代码
#include <vector> | |
#include <iterator> // 需要包含这个头文件来使用begin()和end() | |
int main() { | |
std::vector<int> 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可能会使迭代器失效,因此在循环中删除元素时要特别小心。
相关文章:
如何在vector中插入和删除元素?
在C的std::vector中插入和删除元素通常使用其成员函数来完成。以下是如何在std::vector中插入和删除元素的示例: 插入元素 在末尾插入元素:使用push_back函数。 cpp复制代码 #include <vector> int main() { std::vector<int> v; v.push_…...
独具韵味的移动端 UI 风格
独具韵味的移动端 UI 风格...
【SpringBoot】SpringBoot:构建实时聊天应用
文章目录 引言项目初始化添加依赖 配置WebSocket创建WebSocket配置类创建WebSocket处理器 创建前端页面创建聊天页面 测试与部署示例:编写单元测试 部署扩展功能用户身份验证消息持久化群组聊天 结论 引言 随着实时通信技术的快速发展,聊天应用在现代We…...
基于Matlab的车牌识别停车场出入库计时计费管理系统(含GUI界面)【W6】
简介: 在当今城市化进程加快的环境下,停车管理成为了一个日益重要和复杂的问题。城市中的停车资源有限,如何高效利用和管理这些资源,不仅关乎市民出行便利性,也涉及到城市交通拥堵、环境污染等诸多问题的解决。 传统的…...
大众点评js逆向过程(未完)
相关链接 1、控制流平坦化进行AST 解析 AST网址 2、JS进制转换(Function.prototype.call) 1、断点调试mtgsig参数 这里mtgsig已经被拼到url中 2、进入后mtgsig已经计算完, ir he(this[b(4326)], !1), 就是加密函数 