一、vector插入不重複元素
在使用vector插入元素時,有時需要保證不重複插入元素,可以通過以下方式進行實現:
vector v; int num = 5; if(find(v.begin(), v.end(), num) == v.end()) { v.push_back(num); }
上述代碼中使用了STL庫中的find函數,如果查找到num這個元素,則返回其在vector中的位置,否則返回vector的end位置。如果查找結果為end位置,則說明vector中沒有這個元素,可以將其插入到vector中。
二、cvector插入
cvector是C++98標準之前的寫法,使用指針操作數組。cvector插入元素的方式如下:
int arr[5] = {1, 2, 3, 4, 5}; int* ptr = arr; int len = 5; while(len--) { cout << *(ptr++) << " "; }
上述代碼中,由於cvector使用指針來操作數組,要判斷插入的位置是否越界,同時插入元素時需要將後續元素向後移動,相比vector效率較低。
三、vector和arraylist區別
vector是C++ STL庫中的容器,arraylist是Java集合框架中的類,它們之間的區別主要在以下幾個方面:
1. arraylist只能存儲對象類型,而vector可以存儲對象和基本數據類型;
2. arraylist支持動態增長和縮小,而vector只支持動態增長;
3. arraylist是線程安全的,而vector不是線程安全的。
四、vector函數
除了插入函數外,vector還有一些其他常用的函數:
1. push_back:將元素插入到vector末尾;
2. pop_back:刪除vector末尾最後一個元素;
3. size:返回vector中元素的個數;
4. capacity:返回vector當前分配的空間大小,即可以容納的元素個數。
五、vector insert函數
vector中的insert函數可以在任意位置插入元素,具體使用方式如下:
vector v; v.insert(v.begin() + 2, 3); // 在第3個位置插入元素3
此外,還可以一次性插入多個元素:
vector v; int arr[3] = {1, 2, 3}; v.insert(v.begin() + 1, arr, arr+3); // 在第2個位置插入元素1, 2, 3
六、vector的用法
vector有很多用法,其中常見的有遍歷、排序、查找等:
1. 遍歷:
vector v = {1, 2, 3}; for(int i=0; i<v.size(); i++) { cout << v[i] << " "; }
2. 排序:
vector v = {3, 1, 2}; sort(v.begin(), v.end()); // 將vector按升序排序
3. 查找:
vector v = {1, 2, 3}; int num = 2; bool isExist = (find(v.begin(), v.end(), num) != v.end()); // 在vector中查找元素是否存在
七、vector增加一個元素
如果只需要在vector中增加一個元素,可以使用push_back函數:
vector v = {1, 2, 3}; v.push_back(4); // 往vector中增加一個元素4
八、vector insert用法
上文已經介紹了vector insert函數的基本用法,還可以在指定位置插入重複元素,或者根據條件進行插入:
vector v = {1, 2, 3}; auto it = v.begin() + 2; // 獲取第3個元素的迭代器 v.insert(it, 2, 0); // 在第3個位置插入兩個元素0 v.insert(it, {4, 5, 6}); // 在第3個位置插入三個元素4, 5, 6 v.insert(it, {7, 8, 9}, [](int x){ return x > 7; }); // 在第3個位置插入大於7的元素7, 8, 9
九、oracle插入clob
在使用Oracle資料庫時,如果需要插入比較大的文本數據,可以使用clob類型。插入clob類型的代碼如下:
string content = "xxx"; // 待插入的文本數據 string sql = "INSERT INTO table_name VALUES (:clob)"; // 插入clob的SQL語句 OracleConnection conn; // 創建Oracle連接 OracleCommand cmd(conn, sql); // 創建Oracle命令 OracleClob clob(cmd, 1); // 創建Oracle Clob對象 clob.Write(content.c_str(), content.size()); // 寫入clob對象 cmd.ExecuteNonQuery(); // 執行SQL語句
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/297198.html