vector
特點:
1.可變長的動態數組
2.使用時包含頭文件 #include
3.支持隨機訪問迭代器
? 根據下標隨機訪問某個元素時間為常數
? 在尾部添加速度很快
? 在中間插入慢
成員函數
初始化
[cpp] view plaincopy 01.vector(); 初始化成空 02.vector(int n); 初始化成有n個元素 03.vector(int n, const T & val); 初始化成有n個元素, 每個元素的值都是val,類型是T 04.vector(iterator first, iterator last); 初始化為與別的容器上區間[first, last)一致的內容
舉例:
1.創建一個int類型的空的vector對象:
vectorintvec;
2.創建一個包含5個int類型數據的vector:
vectorintvec(5);
3.創建一個包含5個int類型數據的vector,并且都初始化為2:
vector
4.通過復制某vec容器來創建
vector
元素的訪問
intvec.at(index)
返回由index指定的位置上的元素
intvec[index]
返回由index指定的位置上的元素
舉例:
[cpp] view plaincopy 01.include02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec(10); 07. for (int i = 0;i != vec.size();i++) 08. { 09. vec.at(i) = i; 10. //vec[i] = i ; 11. } 12. 13. for (int i = 0;i != vec.size();i++) 14. { 15. cout << vec.at(i)< 容器的大小
表達式
作用
intvec.capacity()返回不重新分配空間可以插入到容器intvec中的元素的最大個數
intvec.empty()容器intvec為空,返回true;否則,返回false
Intvec.size()返回容器intvec中當前的個數
intvec.resize(num)將元素個數改為num。如果size()增加,默認的構造函數負責創建這些新元素
intvec.resize(num, elem)將元素個數改為num。如果size()增加,默認的構造函數將這些新元素初始化為elem
舉例:
[cpp] view plaincopy 01.#include02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec1; 07. cout << vec1.empty()< vec2(20); 11. cout << vec2.empty()< vec3(15,1); 15. cout << vec3.capacity()< 容器的操作
語句
作用 intvec.clear()從容器中刪除所有元素
intvec.erase(position)刪除由position指定的位置上的元素
intvec.erase(beg,end)刪除從beg到end-1之間的所有元素
intvec.insert(position, elem)將elem的一個拷貝插入到由position指定的位置上,并返回新元素的位置
intvec.inser(position, n, elem)將elem的n個拷貝插入到由 position指定的位置上
intvec.insert(position, beg, end)將從beg到end-1之間的所有元素的拷貝插入到intvec中由position指定的位置上
intvec.push_back(elem)將elem的一個拷貝插入到vector的末尾
intvec.pop_back()刪除最后元素
intvec.front()返回第一個元素的引用,不檢查容器是否為空
Intvec.back()返回最后一個元素的引用,不檢查容器是否為空
[cpp] view plaincopy 01.#include02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec(10,1); 07. cout< vec1(1,1); 12. vec1.insert(vec1.begin()+1,2); //在該位置插入,把原來該位置以其以后的元素整體后移 13. for(int i = 0;i != vec1.size();i++) 14. cout< 02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec(10,1); 07. vec.push_back(2);//12 08. 09. cout< 二維數組
vector< vector> v(3); //v有3個元素,
//每個元素都是vector容器 [cpp] view plaincopy 01.#include02.#include 03.using namespace std; 04.int main() { 05. vector< vector > v(3); 06. for(int i=0; i 輸出:
0 1 2 3
0 1 2 3
0 1 2 3
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64127.html
摘要:更加實際的定義應該是一個集合是一個容器,它其中所包含的元素的值是唯一的。對而言,鍵只是指存儲在容器中的某一成員。成員函數構造函數中的元素都是模板類對象。元素按照成員變量從小到大排列,缺省情況下用定義關鍵字的小于關系。 分類:set, multiset, map, multimap 特點:內部元素有序排列,新元素插入的位置取決于它的值,查找速度快。 常用函數: find: 查找等于...
摘要:拷貝構造函數示例構造無參構造函數總結容器和容器的構造方式幾乎一致,靈活使用即可賦值操作功能描述給容器進行賦值函數原型重載等號操作符將區間中的數據拷貝賦值給本身。清空容器的所有數據刪除區間的數據,返回下一個數據的位置。 ...
摘要:如果增加,默認的構造函數將這些新元素初始化為隊列當前的元素個數交換兩個隊列兩個重載和小結向量容器,使用線性存儲結構,可以像數組一樣隨機下標訪問元素,還可以在尾部插入元素用函數。 deque 特點: 1.雙向隊列 2.使用時包含頭文件 #include 3.deque容器與vector類似,用動態數組來管理元素,支持隨機訪問。 4.與vector不同的是deque的動態數組首尾...
閱讀 2454·2021-11-23 09:51
閱讀 503·2019-08-30 13:59
閱讀 1820·2019-08-29 11:20
閱讀 2529·2019-08-26 13:41
閱讀 3239·2019-08-26 12:16
閱讀 729·2019-08-26 10:59
閱讀 3321·2019-08-26 10:14
閱讀 602·2019-08-23 17:21