一、vector遍歷方法
//聲明一個vector
std::vector vec{1, 2, 3, 4};
//方法1:使用下標
for(int i = 0; i < vec.size(); ++i){
std::cout << vec[i] << ' ';
}
//方法2:使用迭代器
for(auto it = vec.begin(); it != vec.end(); ++it){
std::cout << *it << ' ';
}
//方法3:使用範圍for循環
for(auto i : vec){
std::cout << i << ' ';
}
vector是一種動態數組,其具有可變大小的數組容器,使用vector遍歷一般有三種方法,分別是使用下標、使用迭代器和使用範圍for循環。使用下標訪問比其他方法稍微快一些,但需要注意邊界問題;使用迭代器比較安全,可以訪問vector中的任何元素;使用範圍for循環代碼簡潔,但不能修改vector中元素的值。
二、vector遍歷刪除
1. vector遍歷刪除對象c
//聲明一個vector
std::vector vec{'A', 'B', 'C', 'D'};
//迭代器遍歷vector刪除對象C
for(auto it = vec.begin(); it != vec.end();){
if(*it == 'C'){
it = vec.erase(it);
}else{
++it;
}
}
在遍歷vector時,如果需要刪除某個對象,可以使用vector中的erase函數進行刪除。但是如果直接從vector中刪除會改變vector的大小,導致迭代器失效,從而遍歷不能正常完成。解決方法是使用迭代器的erase函數刪除對象,遍歷完成後才進行刪除,這樣就不會改變vector的大小。
2. vector遍歷後要刪除元素
//聲明一個vector
std::vector vec{1, 2, 3, 4};
//迭代器遍歷vector後刪除所有數據
for(auto it = vec.begin(); it != vec.end();){
it = vec.erase(it);
}
在遍歷結束後,如果需要刪除vector中的所有元素,也可以使用迭代器的erase函數進行刪除。需要注意的是,erase函數會返回一個迭代器,指向刪除後的下一個對象,因此需要將迭代器重新賦值。
三、vector函數
1. vector erase
//聲明一個vector
std::vector vec{1, 2, 3, 4};
//迭代器遍歷vector刪除下標為2的元素
vec.erase(vec.begin() + 2);
可以使用vector中的erase函數來刪除vector中的元素,其參數可以是一個迭代器或一個指向vector中某個元素的指針地址,也可以指定刪除的元素數量。
2. vector刪除最後一個元素
//聲明一個vector
std::vector vec{1, 2, 3, 4};
//使用pop_back刪除最後一個元素
vec.pop_back();
如果僅需要刪除vector中的最後一個元素,可以使用pop_back函數,該函數會將vector中的最後一個元素刪除。
四、總結
本文從vector的遍歷方法、刪除操作以及常用函數三個方面深入探討了vector的使用。對於vector的遍歷,我們可以使用下標、迭代器和範圍for循環三種方法,需要根據實際情況進行選擇。在遍歷過程中,如果需要刪除某個元素,可以使用迭代器的erase函數進行刪除。如果需要刪除整個vector中的所有元素,需要在遍歷完成後再進行刪除。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/280495.html