在c++中,vector是乙個十分有用的容器,下面對這個容器做一下總結。
1 基本操作
(1)標頭檔案#include
.
(2)建立vector物件,vectorvec
;
(3)尾部插入數字:vec.push_back(a)
;
(4)使用下標訪問元素,cout<(5)使用迭代器訪問元素.
vector3 演算法::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout
<<*it<(6)插入元素: vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;
(7)刪除元素:
vec.erase(vec.begin()+2);刪除第3個元素
vec.erase(vec.begin()+i,vec.end()+j);
刪除區間[i,j-1];區間從0開始(8)向量大小:vec.size();
(9)清空:vec.clear();
2 vector的元素不僅僅可以使int,double,string,還可以是結構體,但是要注意:結構體要定義為全域性的,否則會出錯。下面是一段簡短的程式**:
#include
#include
#include
#include
using
namespace
std;
typedef
struct rect
(1) 使用reverse將元素翻**需要標頭檔案#include
reverse(vec.begin(),vec.end());將元素翻轉(在vector中,如果乙個函式中需要兩個迭代器,一般後乙個都不包含.)
(2)使用sort排序:需要標頭檔案#include,
sort(vec.begin(),vec.end());(預設是按公升序排列,即從小到大).可以通過重寫排序比較函式按照降序比較,如下:
定義排序比較函式:
bool comp(const int &a,const int &b)
呼叫時:sort(vec.begin(),vec.end(),comp),這樣就降序排序。
lists將元素按順序儲存在鍊錶中. 與 向量(vectors)相比, 它允許快速的插入和刪除,但是隨機訪問卻比較慢.
assign() 給list賦值
back() 返回最後乙個元素
begin() 返回指向第乙個元素的迭代器
clear() 刪除所有元素
empty() 如果list是空的則返回true
end() 返回末尾的迭代器
erase() 刪除乙個元素
front() 返回第乙個元素
get_allocator() 返回list的配置器
insert() 插入乙個元素到list中
max_size() 返回list能容納的最大元素數量
merge() 合併兩個list
pop_back() 刪除最後乙個元素
pop_front() 刪除第乙個元素
push_back() 在list的末尾新增乙個元素
push_front() 在list的頭部新增乙個元素
rbegin() 返回指向第乙個元素的逆向迭代器
remove() 從list刪除元素
remove_if() 按指定條件刪除元素
rend() 指向list末尾的逆向迭代器
resize() 改變list的大小
reverse() 把list的元素倒轉
size() 返回list中的元素個數
sort() 給list排序
splice() 合併兩個list
swap() 交換兩個list
unique() 刪除list中重複的元素
CSS碎片知識整理
1.效果 border style none 無邊框 border width 0 邊框寬度為0px 2.區別 1 效能差異 border 0 瀏覽器對border width border color進行渲染,占用記憶體。當定義邊框時,不僅要設定邊框寬度,還要設定邊框樣式才能達到顯示的效果 bor...
知識碎片C
記錄一些c 零碎知識 求map的長度用m.size map沒有default value,但是會使用型別的預設值。例如如果value的型別是int,就會預設為0 型別是string,預設為空字串。map已經排序,如果修改排序方式,兩種方法 重構key型別的operator 使用仿函式 map的ope...
java知識碎片整理 物件導向
一 物件導向的特性 物件導向有三大特性 1 封裝性 2 繼承性 3 多型性。1 封裝性 簡單來說所謂的封裝性就是黑盒子,將不想讓外界訪問的資料和方法統統扔進黑盒子,只留給外界乙個開放的按鈕 介面 外界不需要知道程式內部是怎樣執行的,只需要知道通過開放的介面可以達到什麼結果。2 繼承性 在開發過程,常...