丹東誰家做網(wǎng)站百度手機(jī)網(wǎng)頁版
在C++的std::vector
中插入和刪除元素通常使用其成員函數(shù)來完成。以下是如何在std::vector
中插入和刪除元素的示例:
插入元素
- 在末尾插入元素:使用
push_back
函數(shù)。
cpp復(fù)制代碼
#include <vector> | |
int main() { | |
std::vector<int> v; | |
v.push_back(1); // 在vector末尾添加元素1 | |
v.push_back(2); // 在vector末尾添加元素2 | |
// ... | |
} |
- 在指定位置插入元素:使用
insert
函數(shù)。
cpp復(fù)制代碼
#include <vector> | |
#include <iterator> // 需要包含這個(gè)頭文件來使用begin()和end() | |
int main() { | |
std::vector<int> v = {1, 2, 3}; | |
v.insert(v.begin() + 1, 4); // 在索引1的位置插入元素4 | |
// 現(xiàn)在v包含 {1, 4, 2, 3} | |
// ... | |
} |
你還可以使用迭代器范圍來插入多個(gè)元素:
cpp復(fù)制代碼
#include <vector> | |
#include <list> // 作為示例,插入一個(gè)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的所有元素 | |
// 現(xiàn)在v包含 {1, 2, 3, 4, 5, 6} | |
// ... | |
} |
刪除元素
- 刪除末尾元素:使用
pop_back
函數(shù)。
cpp復(fù)制代碼
#include <vector> | |
int main() { | |
std::vector<int> v = {1, 2, 3}; | |
v.pop_back(); // 刪除vector的最后一個(gè)元素 | |
// 現(xiàn)在v包含 {1, 2} | |
// ... | |
} |
- 刪除指定位置的元素:使用
erase
函數(shù),它接受一個(gè)迭代器作為參數(shù),表示要?jiǎng)h除的元素的位置。
cpp復(fù)制代碼
#include <vector> | |
#include <iterator> // 需要包含這個(gè)頭文件來使用begin() | |
int main() { | |
std::vector<int> v = {1, 2, 3, 4, 5}; | |
v.erase(v.begin() + 2); // 刪除索引為2的元素(即元素3) | |
// 現(xiàn)在v包含 {1, 2, 4, 5} | |
// ... | |
} |
你還可以使用迭代器范圍來刪除多個(gè)元素:
cpp復(fù)制代碼
#include <vector> | |
#include <iterator> // 需要包含這個(gè)頭文件來使用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)的元素 | |
// 現(xiàn)在v包含 {1, 2, 5, 6} | |
// ... | |
} |
注意:在使用erase
函數(shù)時(shí),返回的迭代器指向被刪除元素之后的元素。如果你計(jì)劃連續(xù)刪除多個(gè)元素,并且使用erase
的返回值來更新你的迭代器,你需要小心處理。此外,由于erase
可能會(huì)使迭代器失效,因此在循環(huán)中刪除元素時(shí)要特別小心。