C 知識碎片整理(9) Vector List

2021-07-22 21:41:49 字數 2033 閱讀 3589

在c++中,vector是乙個十分有用的容器,下面對這個容器做一下總結。

1 基本操作

(1)標頭檔案#include.

(2)建立vector物件,vectorvec;

(3)尾部插入數字:vec.push_back(a);

(4)使用下標訪問元素,cout<(5)使用迭代器訪問元素.

vector

::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

3 演算法

(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 繼承性 在開發過程,常...