vector成員函數:
常用:
push_back( )在向量的末尾插入值,必要時會擴展向量的大小
size( )顯示向量的大小
begin( )返回一個指向向量開頭的迭代器
end( )返回一個指向向量末尾的迭代器
基本:
插入元素:
vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;
刪除元素:
vec.erase(vec.begin()+2);刪除第3個元素
vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始
向量大小:
vec.size();
清空:
vec.clear();
重要算法:
使用reverse將元素翻轉:需要頭文件#include<algorithm>
reverse(vec.begin(),vec.end());將元素翻轉,即逆序排列!
(在vector中,如果一個函數中需要兩個迭代器,一般後一個都不包含)
使用sort排序:需要頭文件#include<algorithm>,
sort(vec.begin(),vec.end());(默認是按升序排列,即從小到大).
重寫排序比較函數按照降序比較:
定義排序比較函數:(降序排序)
bool Comp(const int &a,const int &b)
{
return a>b;
}
調用時:
降序排序
sort(vec.begin(),vec.end(),Comp)
例:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// 創建一個向量存儲 int
vector<int> vec;
int i;
// vector原始大小
cout << "vector 的原始大小: " << vec.size() << endl;
// 推入 5 個值到向量中
for(i = 0; i < 5; i++)
{
vec.push_back(i);
}
// vector 擴展後的大小
cout << "vector 擴展後的大小: " << vec.size() << endl;
// 訪問向量中的 5 個值
for(i = 0; i < 5; i++)
{
cout << "vector的值: vec [" << i << "] = " << vec[i] << endl;
}
// 用迭代器 iterator 訪問值
vector<int>::iterator v = vec.begin();
while( v != vec.end())
{
cout << "vector的值 : " << *v << endl;
v++;
}
return 0;
}