歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> STL容器vector基礎用法小結

STL容器vector基礎用法小結

日期:2017/3/1 9:17:44   编辑:Linux編程

STL容器vector基礎用法小結根據《ACM程序設計》寫的,用實例展示vector用法。

《ACM程序設計》高清晰PDF書簽版(曾宗根) 下載:http://www.linuxidc.com/Linux/2016-03/129510.htm

方法:push_back(), insert(), erase(), clear(), size(), empty();

算法:reverse(), sort().

#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
template <typename T>
void printVec(const vector<T> &v){ //函數模板輸出向量
for(int i=0;i<v.size();i++)
cout<<v[i]<<' ';
cout<<endl<<endl;
}

int main(){
vector<int> iv; //定義向量
iv.push_back(2); //尾部追加新元素
iv.push_back(7);
iv.push_back(3);
iv.push_back(4);
iv.push_back(1);
iv.push_back(9);
cout<<iv[2]<<endl; //下標訪問元素

vector<double> dv(3); //定義向量
cout<<dv[2]<<endl; //默認值為0

vector<double> dv1(6,7.18);
cout<<dv1[2]<<endl; //默認值為7.18

vector<int>::iterator it; //迭代器輸出向量
for(it=iv.begin();it!=iv.end();it++)
cout<<*it<<' ';
cout<<endl;

iv.insert(iv.begin(),8); //在首元素前插入8
iv.insert(iv.begin()+2,6); //在第3個元素前插入6
iv.insert(iv.end(),5); //在末元素前插入5
printVec(iv); //調用printVec函數

dv1.erase(dv1.begin()+3); //刪除一個元素
printVec(dv1);


dv1.erase(dv1.begin()+2,dv1.end()-1); //刪除多個元素(包括左值不包括右值)
printVec(dv1);
cout<<endl;

dv1.clear(); //清空向量
cout<<dv1.size()<<' '<<dv1.empty()<<endl;
//返回元素個數/向量是否為空

reverse(iv.begin(),iv.end()); //使用reverse反向排列算法
printVec(iv);

sort(iv.begin(),iv.end()); //使用sort升序排列
printVec(iv);
return 0;
}

Copyright © Linux教程網 All Rights Reserved