c++ 一維向量,和二維向量的基本使用
- 首先是一維向量和二維向量的初始化
//很簡單,初始化一個n個元素值為1的向量。
//括號可選
vector<int> res(n,1);
//相當於二維m*n的陣列,不過陣列的memset好像只能初始化為0
vector<vector<int> > res(m,vector<int>(n,1))
//預設都初始化為0
vector<int> res(n)
//跟陣列差不多
vector<int> res{1,2,3}
記住後面的兩個>有一個空格,要不然系統會解釋為流操作符。(好像是)
- 接下來是一維向量的各種成員函式
vector<int> res;
//將n入到向量尾端
res.push_back(n);
//刪除向量尾端的元素,無返回值
res.pop_back()
//返回尾部的引用
int a = res.back()
//返回值bool型
res.empty()
//使用這個可以替代用sizeof求陣列
res.size()
- 然後就是使用迭代器來遍歷
//初始化一個vector型別的迭代器
vecotr<int> res;
vector<int>:: iterator iter;
for(iter=res.begin();iter!=res.end();iter++){
cout<<*iter<<endl;
}
//二維的
vector<vector<int> > vec;
vector<vector<int> >::iterator iter2;
for(iter2=vec.begin();iter2!=vec.end();iter2++){
//內部初始化一個一維向量的迭代器,和一個一維向量來訪問每一行
vector<int> other = *iter;
vector<int>::iterator iter3;
for(iter3=other.begin();iter3!=other.end();iter3++){
cout<<*iter3<<" ";
}
cout<<endl;
}
其實二維向量還是挺麻煩的,不能直接使用下標來訪問。但是一維向量是真的香。
有一種場景我覺得使用二維向量還是挺好的:就是有多個結果集,我們每次找到一個結果集就是一個一維向量,直接push_back到二維向量中,相當於每次一行,還是挺方便的
vector<int> res;
vector<int> track;
if(...){
// 符合條件就push_back
res.push_back(track)
}
目前向量我用的就這麼多吧!後續有常用的還會更新uo!
相關文章
- 如何優雅地從 C++ 向量中提取二維矩形區域C++
- 向量點乘為降維,叉乘為升維點乘
- C++向量C++
- 0190-定義三維向量
- UA MATH567 高維統計II 隨機向量1 隨機向量的範數H5隨機
- UA MATH567 高維統計II 隨機向量5 亞高斯隨機向量H5隨機
- UA MATH567 高維統計II 隨機向量2 各向同性的隨機向量H5隨機
- 推薦系統中嵌入向量維數選擇
- 向量圖SVG的使用SVG
- C++ 使用 new 建立二維陣列C++陣列
- 二維字首和 & 二維差分
- WebGL自學課程(13):獲得三維拾取向量Web
- c++向量變數動作.C++變數
- 支援向量機原理(一) 線性支援向量機
- c++生成二維碼C++
- UA MATH567 高維統計II 隨機向量6 亞高斯隨機向量的應用: 半正定規劃H5隨機
- C/C++ 二維陣列的理解(多維陣列)C++陣列
- 卷積運算元的矩陣向量乘積表示&一維離散降質模型卷積矩陣模型
- 支援向量機(SVM)和python實現(二)Python
- javascript中一維和二維陣列初始化JavaScript陣列
- 特徵值和特徵向量特徵
- MATLAB一維插值和二維插值 比較Matlab
- Java 二維陣列轉一維Java陣列
- 支援向量機原理(二) 線性支援向量機的軟間隔最大化模型模型
- 特徵值 和 特徵向量,thrive特徵
- iOS 花式二維碼生成和二維碼識別iOS
- Android 二維碼掃描和生成二維碼Android
- 向量正交
- 第11章 使用類——再談過載:向量類(二)
- 向量圖示的管理和應用
- 矩陣的特徵值和特徵向量矩陣特徵
- 機器學習——支援向量機SVM(一)機器學習
- 二維CANVAS基本語法(圖片Image)Canvas
- 微課|中學生可以這樣學Python(例7.2):三維向量類Python
- 【動態規劃】用一維和二維解決不同路徑動態規劃
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- PHP二維陣列轉一維陣列PHP陣列