在C++的std::vector
中插入和删除元素通常使用其成员函数来完成。以下是如何在std::vector
中插入和删除元素的示例:
push_back
函数。cpp复制代码
#include | |
int main() { | |
std::vector | |
v.push_back(1); // 在vector末尾添加元素1 | |
v.push_back(2); // 在vector末尾添加元素2 | |
// ... | |
} |
insert
函数。cpp复制代码
#include | |
#include | |
int main() { | |
std::vector | |
v.insert(v.begin() + 1, 4); // 在索引1的位置插入元素4 | |
// 现在v包含 {1, 4, 2, 3} | |
// ... | |
} |
你还可以使用迭代器范围来插入多个元素:
cpp复制代码
#include | |
#include | |
int main() { | |
std::vector | |
std::list | |
v.insert(v.end(), lst.begin(), lst.end()); // 在vector末尾插入list的所有元素 | |
// 现在v包含 {1, 2, 3, 4, 5, 6} | |
// ... | |
} |
pop_back
函数。cpp复制代码
#include | |
int main() { | |
std::vector | |
v.pop_back(); // 删除vector的最后一个元素 | |
// 现在v包含 {1, 2} | |
// ... | |
} |
erase
函数,它接受一个迭代器作为参数,表示要删除的元素的位置。cpp复制代码
#include | |
#include | |
int main() { | |
std::vector | |
v.erase(v.begin() + 2); // 删除索引为2的元素(即元素3) | |
// 现在v包含 {1, 2, 4, 5} | |
// ... | |
} |
你还可以使用迭代器范围来删除多个元素:
cpp复制代码
#include | |
#include | |
int main() { | |
std::vector | |
v.erase(v.begin() + 2, v.begin() + 4); // 删除索引为2到3(不包括4)的元素 | |
// 现在v包含 {1, 2, 5, 6} | |
// ... | |
} |
注意:在使用erase
函数时,返回的迭代器指向被删除元素之后的元素。如果你计划连续删除多个元素,并且使用erase
的返回值来更新你的迭代器,你需要小心处理。此外,由于erase
可能会使迭代器失效,因此在循环中删除元素时要特别小心。