c++中vector的用法详解
生活随笔
收集整理的這篇文章主要介紹了
c++中vector的用法详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
c++中vector的用法詳解
? ? ?用法:
1.文件包含: ? ??
? ? ? ? ? ?首先在程序開頭處加上#include<vector>以包含所需要的類文件vector還有一定要加上using namespace std;
?
2.變量聲明:
? ? 2.1 例:聲明一個int向量以替代一維的數組:vector <int> a;(等于聲明了一個int數組a[],大小沒有指定,可以動態的向里面添加刪除)。
? ? 2.2 例:用vector代替二維數組.其實只要聲明一個一維數組向量即可,而一個數組的名字其實代表的是它的首地址,所以只要聲明一個地址的向量即可,即:vector <int *> a.同理想用向量代替三維數組也是一樣,vector <int**>a;再往上面依此類推.
?
3.具體的用法以及函數調用:
? ? 3.1 如何得到向量中的元素?其用法和數組一樣:
? ? ? ? 例如:
? ? ? ? ? vector <int *> a
? ? ? ? ? int b = 5;
? ? ? ? ? a.push_back(b);//該函數下面有詳解
? ? ? ? ? cout<<a[0]; ? ? ? //輸出結果為5
1.push_back ? 在數組的最后添加一個數據
2.pop_back ? ?去掉數組的最后一個數據?
3.at ? ? ? ? ?得到編號位置的數據
4.begin ? ? ? 得到數組頭的指針
5.end ? ? ? ? 得到數組的最后一個單元+1的指針
6.front ? ? ?得到數組頭的引用
7.back ? ? ? ?得到數組的最后一個單元的引用
8.max_size ? ?得到vector最大可以是多大
9.capacity ? ?當前vector分配的大小
10.size ? ? ? 當前使用數據的大小
11.resize ? ? 改變當前使用數據的大小,如果它比當前使用的大,者填充默認值
12.reserve ? ?改變當前vecotr所分配空間的大小
13.erase ? ? ?刪除指針指向的數據項
14.clear ? ? ?清空當前的vector
15.rbegin ? ? 將vector反轉后的開始指針返回(其實就是原來的end-1)
16.rend ? ? ? 將vector反轉構的結束指針返回(其實就是原來的begin-1)
17.empty ? ? ?判斷vector是否為空
18.swap ? ? ? ? 與另一個vector交換數據
?
3.2 ?詳細的函數實現功能:其中vector<int> c.
? ? ? ? c.clear() ? ? ? ? ?移除容器中所有數據。
? ? ? ? c.empty() ? ? ? ? ?判斷容器是否為空。
? ? ? ? c.erase(pos) ? ? ? 刪除pos位置的數據
? ? ? ? c.erase(beg,end) ? 刪除[beg,end)區間的數據
? ? ? ? c.front() ? ? ? ? ?傳回第一個數據。
? ? ? ? c.insert(pos,elem) 在pos位置插入一個elem拷貝
? ? ? ? c.pop_back() ? ? ? 刪除最后一個數據。
? ? ? ? c.push_back(elem) ?在尾部加入一個數據。
? ? ? ? c.resize(num) ? ? ?重新設置該容器的大小
? ? ? ? c.size() ? ? ? ? ? 回容器中實際數據的個數。
? ? ? ? c.begin() ? ? ? ? ?返回指向容器第一個元素的迭代器
? ? ? ? c.end() ? ? ? ? ? ?返回指向容器最后一個元素的迭代器
? ? ? ? c.assign(beg,end):將[beg; end)區間中的數據賦值給c。
? ? ? ? c.assign(n,elem): 將n個elem的拷貝賦值給c。?
? ? ? ? c.at(idx): ? ? ? ?傳回索引idx所指的數據,如果idx越界,拋出out_of_range。?
? ? ? ? c.back(): ? ? ? ? 傳回最后一個數據,不檢查這個數據是否存在。
? ? ? ? c.front(): ? ? ? ?傳回地一個數據。?
? ? ? ? get_allocator: ? ?使用構造函數返回一個拷貝。?
? ? ? ? c.rbegin(): ? 傳回一個逆向隊列的第一個數據。?
? ? ? ? c.rend(): ? ? ? ? 傳回一個逆向隊列的最后一個數據的下一個位置。?
? ? ? ? c.~ vector <Elem>():銷毀所有數據,釋放內存。?
總結
以上是生活随笔為你收集整理的c++中vector的用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Byte和bit的区别?
- 下一篇: 在QT的LineEdit框中输入特定字符