C++ Vector資料插入
用迭代器向vector插入資料時,要注意控制迭代器的位置,直接插入,程式會直接崩潰。
下面用程式碼解釋這個問題。
#include <iostream>
#include <vector>
using namespace std;
//元素值與3取餘是0時插入一個數字
void VectorInsert(){
vector<int> v{1,2,3,4,5,7,8,9};
auto it=v.begin();
int cnt=0;
while(it != v.end()){
if((*it)%3==0){
it=v.insert(it, (*it)+100);
++it; //控制迭代器位置,這一步很關鍵
}
++it;
cnt++;
if(cnt>20){
break;
}
}
for (int n:v){
cout<<n<<endl;
}
}
void WrongInsert(){
vector<int> v{1,2,3,4,5,7,8,9};
for(auto it=v.begin();it != v.end();it++){
if((*it)%3==0){
v.insert(it, *it+20);
}
}
for (int n:v){
cout<<n<<endl;
}
}
int main(int argc, const char * argv[]) {
VectorInsert();
cout<<"-----------"<<endl;
//WrongInsert();直接崩潰
cout << "Hello, World!\n";
return 0;
}
相關文章
- vector——C++C++
- c++ vectorC++
- C++ STL -- vectorC++
- C++ Vector fundamentalC++
- C++:vector assignC++
- C++(std::vector)C++
- mybatis插入資料、批量插入資料MyBatis
- C++ folly庫解讀(二) small_vector —— 小資料集下的std::vector替代方案C++
- C++的vector容器C++
- C++簡單vectorC++
- c++ vector容器、字串C++字串
- C++之vector容器C++
- C++ 容器vector的使用C++
- c++ std::vector 切記C++
- C++【vector】用法和例子C++
- C++中vector<int>& numsC++
- c++ vector用法詳解C++
- c/c++ 標準庫 vectorC++
- C++ ——vector陣列筆記C++陣列筆記
- C++ vector 列表初始化C++
- mongodb資料庫中插入資料MongoDB資料庫
- mybatis 批次插入資料MyBatis
- C++ vector<std::tuple<XXX, XXX, XXX>>C++
- C++ vector 的一些操作C++
- c++陣列排序插入C++陣列排序
- python如何將資料插入資料庫Python資料庫
- mysql插入資料時如果有相同資料就不插入或者替換MySql
- 使用MySqlBulkLoader批量插入資料MySql
- 自己動手寫Vector【Cherno C++教程】C++
- .NET 資料庫大資料 方案(插入、更新、刪除、查詢 、插入或更新)資料庫大資料
- MySQL 資料庫表格建立、資料插入及獲取插入的 ID:Python 教程MySql資料庫Python
- PG-pg資料庫安裝vector資料庫
- Vector中存放自定義資料型別資料型別
- eazyexcel 讀取excel資料插入資料庫Excel資料庫
- python資料插入連線MySQL資料庫PythonMySql資料庫
- Mysql在資料插入後立即獲取插入的IdMySql
- C++ vector容器的swap方法(容器互換)C++
- 順序表有序插入資料