關於STL的一些理解

2021-08-21 15:41:38 字數 1666 閱讀 9118

1.

集合set。定義:

sets1; 型別可選。

se.begin() 返回指向第乙個元素的迭代器

se.clear() 清除所有元素  //常用

se.count() 返回某個值元素的個數  //常用,一般用來查這個元素在不在集合中

se.empty() 如果集合為空,返回true

se.end() 返回指向最後乙個元素之後的迭代器,不是最後乙個元素

se.erase() 刪除集合中的元素  //常用

se.find() 返回乙個指向被查詢到元素的迭代器

se.insert() 在集合中插入元素  //常用

se.max_size() 返回集合能容納的元素的最大限值

se.size() 集合中元素的數目

se.swap() 交換兩個集合變數

遍歷用到迭代器。

for (set::iterator it = s.begin(); it != s.end(); ++it) {

cout << *it << endl;

2.map

定義   map< string , int > m;

以乙個string形式的變數指向乙個int型的變數(個人理解)

mapaaa;

aaa [ b ] =a;

3.queue的用法

queuea;

a.push   push即在隊尾插入乙個元素

a.pop  將佇列中最靠前位置的元素拿掉,是沒有返回值的void函式

a.size  返回佇列中元素的個數,返回值型別為unsigned int

a.empty  判斷佇列是否為空的,如果為空則返回true

a.front   返回值為佇列中的第乙個元素,也就是最早、最先進入佇列的元素。注意這裡只是返回最早進入的元素,並沒有把它剔除出佇列。

a.back   返回佇列中最後乙個元素,也就是最晚進去的元素。

4.vector

vec.begin()//指向迭代器中第乙個元素。 

vec.end()//指向迭代器中末端元素的下乙個,指向乙個不存在元素。

vec.push_back(elem) //在尾部加入乙個資料。

vec.pop_back() //刪除最後乙個資料。

vec.capacity() //vector可用空間的大小。

vec.size()//返回容器中資料個數。

vec.empty() //判斷容器是否為空。

vec.front() //傳回第乙個資料。

vec.back() //傳回最後乙個資料,不檢查這個資料是否存在。

vec.at(index) //傳回索引idx所指的資料,如果idx越界,丟擲out_of_range。

vec.clear() //移除容器中所有資料。

vec.erase(iterator) //刪除pos位置的資料,傳回下乙個資料的位置。

vec.insert(position,elem) //在pos位置插入乙個elem拷貝,傳回新資料位置。

vec.insert(position,n,elem) //在pos位置插入n個elem資料,無返回值。

vec.insert(position,begin,end) //在pos位置插入在[beg,end)區間的資料,無返回值。

關於熵的一些理解

對於理工科學生來說,熵 並不是乙個陌生的名詞。在諸如 大學物理 熱力學 和 資訊理論 等課程中都會有所介紹。但同時 熵 又是乙個顯得有點神秘的概念,看不見也摸不著。我最早是在高中物理課中聽說的,大概是在介紹 熱力學第二定律 時提到的。熱力學第二定律的內容是 熱力學過程是不可逆的 孤立系統自發地朝著熱...

關於float的一些理解

float是否脫離文件流,乙個父元素不設定overflow的話,子元素float,就不會把父元素撐開,換句話說,他就不會有高度,但是做個demo 父元素overflow hidden 子元素前兩個float,第三個不float,結果是第三個沒有clear浮動的元素,跟float的元素出現在同乙個位置...

關於android layout的一些理解

1 wrap content view的尺寸根據它的內容確定 match parent view的尺寸盡量和它的parent view group一樣大 2 獲得view的位置 position getleft gettop getright getleft getwidth getwidth 3 ...