C++primer1-7章知識點總結——vector以及迭代器的相關運用
vector
定義:vector也常被稱作容器,表示物件的集合,其中所有物件的型別都相同。集合中每個物件都有一個與之對應的索引,索引用於訪問物件。使用時需新增標頭檔案。vector是一個類别範本使用時需例項化。
eg:
#include<vector>
#include<string>
using namespace std;
vector<int> ivec; //ivec儲存int型別的物件
vector<vector<string>> file; //該向量的元素是vector物件
/*儘管vector能容納絕大多數型別的物件作為其元素
但引用不是物件
因此不存在包含引用的vector。
除此之外大多數(非引用)內建型別和類型別都可以構成vector物件
甚至組成vector的元素也可以是vector
*/
定義和初始化vector
vector<T> v1; //v1是一個空vector,執行預設初始化
vector<T> v2(v1); //v2中包含有v1所有元素的副本
vector<T> v2 = v1; //等價於上一種初始化方式
vector<T> v3(n,val); //v3中包含了n個相同的val元素
vector<T> v4(n); //v4中包含了n個重複執行了值初始化的物件,值初始化是由物件中的元素型別決定的,如內建型別int會初始化為0,類型別string會被初始化為空string。
vector<T> v5{a, b, c, ...} //v5包含了初始值個數的元素,每個元素被賦予相應的初始值
vector<T> v5 = {a, b, c, ...} //等價於上一條
vector的主要相關操作
v.empty();
v.size();
v.push_back(t) //使用這種方式新增元素不要使用下標形式新增
v[n]; //返回v中第n個位置上元素的引用
v1 = v1;
v1 = {a, b, c, ...};
v1 == v2; //v1和v2當且僅當它們的元素數量相同且對應位置的元素值都相同
//主要遍歷方式
for(auto &i : v)
//或者
for(auto beg = v.begin(); v != v.end(); ++beg)
//一般來說我們不在意迭代器準確的型別是什麼,因此使用auto。
//c++在for迴圈中使用!=來判斷。
//第二種主要是用迭代器的相關操作也可用beg來返回vector的中元素的引用如:
*beg //返回當前beg所指元素的引用
beg->men //解引用beg並獲取該元素名為men的成員,等價於(*beg).men
//迭代器型別:
vector<int> :: iterator it; //可讀寫
vector<int> :: const_iterator it; //可讀不可寫
迭代器的經典操作二分搜尋
//text有序
auto beg = text.begin(), last = text.end();
auto mid = beg + (last - beg)/2;
while(mid != last && *mid != sought){ //sought為要尋找的目標
if(sought < *mid)
last = mid;
else
beg = mid + 1;
mid = beg + (last - beg)/2;
}
相關文章
- C++primer1-7章知識點總結——sizeof運算子C++
- C++primer1-7章知識點總結——顯示轉換C++
- 總結 MySQL 相關知識點MySql
- JVM相關知識點總結JVM
- PHP物件相關知識點的總結PHP物件
- Java知識點總結(Java容器-Vector)Java
- C++中類相關知識點總結C++
- 相機成像相關知識總結
- C++primer1-7章知識點總結——頂層const與底層constC++
- 資訊熵相關知識總結熵
- Java 容器相關知識全面總結Java
- 磁碟相關概念以及知識
- 老Python總結的字典相關知識Python
- 瀏覽器知識點總結瀏覽器
- Java與Mysql鎖相關知識總結JavaMySql
- 作業系統相關知識總結作業系統
- Git相關知識點Git
- redis相關知識點Redis
- shell相關知識點
- Oracle 相關知識點Oracle
- UIBarButtonItem的相關知識點UI
- tmpwatch相關的知識點
- 知識點總結
- web跨域及cookie相關知識總結Web跨域Cookie
- RMAN備份相關知識與技能總結
- STM32中斷相關知識總結
- Linux 動態庫相關知識總結Linux
- 關於 SSH 框架面試知識點的總結框架面試
- 面試總結:Promise有關面試的知識點。面試Promise
- 前端知識點總結—面試專用前端面試
- upload-labs通關詳解以及相關知識點
- 班機運輸相關知識
- 【Java】容器相關知識點Java
- ivar layout 相關知識點
- LR模型相關知識點模型
- ARP相關知識點
- 遊戲伺服器開發相關知識點遊戲伺服器
- 死鎖(ora-00060)以及死鎖相關的知識點