C++ STL之向量vector

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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章