vc 使用容器

2021-06-01 21:07:38 字數 2961 閱讀 4325

vc 使用容器 deque

deque是標準模板庫中的內容和vector一樣,deque是雙端佇列.

函式 描述

c.assign(beg,end) 

將[beg; end)區間中的資料賦值給c。

c.assign(n,elem) 

將n個elem的拷貝賦值給c。

c.at(idx) 

傳回索引idx所指的資料,如果idx越界,丟擲out_of_range。

c.back() 

傳回最後乙個資料,不檢查這個資料是否存在。

c.begin() 

傳回迭代器重的可乙個資料。

c.clear() 

移除容器中所有資料。

dequec 

建立乙個空的deque。

dequec1(c2) 

複製乙個deque。

dequec(n) 

建立乙個deque,含有n個資料,資料均已預設構造產生。

dequec(n, elem) 

建立乙個含有n個elem拷貝的deque。

dequec(beg,end) 

建立乙個以[beg;end)區間的deque。

c.~deque() 

銷毀所有資料,釋放記憶體。

c.empty() 

判斷容器是否為空。

c.end() 

指向迭代器中的最後乙個資料位址。

c.erase(pos) 

刪除pos位置的資料,傳回下乙個資料的位置。

c.erase(beg,end) 

刪除[beg,end)區間的資料,傳回下乙個資料的位置。

c.front() 

傳回地乙個資料。

get_allocator 

使用建構函式返回乙個拷貝。

c.insert(pos,elem) 

在pos位置插入乙個elem拷貝,傳回新資料位置。

c.insert(pos,n,elem) 

在pos位置插入》n個elem資料。無返回值。

c.insert(pos,beg,end) 

在pos位置插入在[beg,end)區間的資料。無返回值。

c.max_size() 

返回容器中最大資料的數量。

c.pop_back() 

刪除最後乙個資料。

c.pop_front() 

刪除頭部資料。

c.push_back(elem) 

在尾部加入乙個資料。

c.push_front(elem) 

在頭部插入乙個資料。

c.rbegin() 

傳回乙個逆向佇列的第乙個資料。

c.rend() 

傳回乙個逆向佇列的最後乙個資料的下乙個位置。

c.resize(num) 

重新指定佇列的長度。

c.size() 

返回容器中實際資料的個數。

c1.swap(c2) 

將c1和c2元素互換。

swap(c1,c2) 

同上操作。

deque操作

operator 返回容器中指定位置的乙個引用。

引用:

#include /*#include */

using namespace std;

宣告:std::dequem_p1;

使用:m_p1.push_back(message);

m_p1.front();

m_p1.pop_front ();

m_p1.size();

容器 vector 是動態分配空間,作為管理動態陣列的優先選擇

1) max_size()

返回 vector理論上可以裝的最多 t 的個數。這只是乙個理論上的數字, 大概是 4gb/sizeof(t),沒有多大實用價值。在程式中不要用。

2) size()

返回 vector中實際裝的 t 的個數。相當於 carray<>::getsize()。

3) empty()

如果 vector中沒有任何 t 物件,返回 true。也就是返回 size() == 0。

4) clear();

清除 vector中的所有 t 物件。執行後 empty() 返回 true。大致相當於 resize(0),但不要求 t 可被預設構造。相當於 carray<>::removeall()。

5) resize( size_t n, t t = t() );

將 vector 中的元素個數設定為 n,n 可以大於 size() 也可以小於 size。如果 n 小於 size(),那麼 vector 中下標為 n..size()-1 的元素都將被解構。如果 n > size(),那麼將在 vector 的後面新增加

n - size() 個相同的元素 t。在增大 vector 時,可能發生儲存再次分配。總之,呼叫resize( n, t ) 後,(size() == n) 成立。

請注意,如果呼叫 resize( n ) 不帶引數 t ,那麼 t 必須可以預設構造。

6) reserve( size_t n );

事先分配至少可以儲存 n 個 t 物件的空間。呼叫後 (capacity() >= n)成立。

7) capacity();

返回已經分配的儲存空間夠容納的 t 型別物件的個數。後續的增加元素操作(如 push_back(), insert())如果增加元素後 vector 中的總元素個數不超過 capacity(),那麼 vector 的實現保證不重新分配儲存空間。

v.push_back( i );

// 刪除 50, 51, ..., 89:

v.erase( v.begin() + 50, v.end() - 10 );

// 刪除 49, 48:

v.pop_back();

v.pop_back();

// 全部刪除:

v.clear();

容器的使用

top k frequent elements 給定乙個非空整數陣列,返回前k個最頻繁的元素 輸入 nums 1,1,1,2,2,3 k 2 輸出 1,2 思路 遇到這種top k的題目,一般都使用堆這種資料結構,因為堆排序每次只需要輸出頂部,輸出k次即可。class solution for in...

使用mysql容器

1.拉取官方mysql映象 官方映象版本分為 mysql 5.6 mysql 5.7 mysql latest docker pull mysql 5.72.執行映象 使用docker run執行映象 docker run name mysql p 12345 3306 e mysql root p...

VC批註 使用示例

vc2008 vc批註 使用示例 編譯選項 生成時啟用c c 分析 是 analyze include stdafx.h include using namespace vc attributes 要求檢查資料有效性質 int fun pre validelementsconst 2 int pda...