STL的簡單應用 知識點

2021-10-21 21:47:59 字數 3243 閱讀 7344

#stl的簡單應用–知識點`

1#include//萬能的標頭檔案,對c++大部分操作完全可以實現。

c++中的輸入和輸出有兩種方式,

#include

using

namespace std;

intmain()

`

學習了string的一些簡單的應用,

s.size()返回的是s中的字元個數

還有賦值,連線,比較。

getline()函式

一般表達為getline(cin,line)

line//第二個引數,存放讀入字串的string物件。

函式作用:就是把cin(從其正讀取想要的內容,然後存入後乙個引數裡)

#include

using

namespace std;

int main (

)

while

用迴圈讀取未知數量的string物件,用下標運算子訪問string中指定位置的字元時,範圍是0-s1.size()

3(stack)

先進後出,操作最頂端元素,再返回bool與查詢元素(字元)個數時候的操作差不多

(s.top())//返回棧頂元素

(s.pop();)移除

(s.push(a))壓入乙個元素

就是對棧頂的元素進行操作

`#include.h>

using

namespace std;

intmain()

5vector動態陣列

定義:vectorv

這個函式由push_back(型別 a)壓入的時候是由最尾端插入。

同樣也是刪除最尾端pop_back()

6sort函式(#include)

定義#include(標頭檔案)

(1)int a[n]=//n是已知的數

sort(begin,end);

sort(a,a+n);//a是指標名位址從頭到尾進行排序,預設從小到大。

(2)sort(begin,end,cmp);//反向排列

(3)bool cmp(int a,int b)

return a>b;

如果cmp返回結果為假, 那麼函式就會將他們互換位置;

如果cmp返回結果為真,就會保持原來位置不變。在這裡也就是如果a>b=ture,那麼返回a>b,

else得到t=b,b=a,a=t;互換位置

7優先佇列(priority_queue)為佇列的乙個延伸

定義:priority_queueq

優先佇列中,元素被賦予優先順序。當訪問元素時,具有最高優先順序的元素最先刪除這是與普通佇列的區別,

8去重unique

iterstor unique(name1 begin,name1 end);

iterstor unique(name1 begin,name1 end,myfunc);

//最後乙個引數是判斷元素是否相等。

去除陣列(容器)相鄰重複出現的元素;注意,這裡是相鄰。但並沒有刪除,只是把元素放在末尾

使用條件:去重是相鄰間的元素,在進行去重前先進行排序,例如

sort()

由於返回的是容器末尾,所以如果想得到去重後的size,需要減去初始位址。

9scanf

s= unique(b + 1,b + n + 1)-(b + 1);

scanf()函式是格式化輸入函式

scanf(「格式化字串」,位址);

10operator()

函式物件:定義了呼叫操作符()的類物件。當用該物件呼叫此操作符時,其表現形式如同普通函式呼叫一般

11set和multiset

根據特定的準則排列元素。

不同:set不允許元素重複。

定義:sets;//預設從小到大。

#include

using

namespace std;

intmain()

12map和multimap

定義:mapmap_name;

mapm;//預設由小到大排列。

與前面的差不多.但是map的每乙個元素都有兩個,第乙個元素是鍵值,另乙個是實值。

區別:map不可以已有兩個相同的鍵值,但是另乙個可以。

m.lower_bound();//

m.upper_bound();

upper_bound 和 lower_bound;

(1)upper_bound(begin, end, value);

返回》value的元素的第乙個位置。

(2)lower_bound(begin, end, value);

返回》=value的元素的第乙個位置。

#include

using

namespace std;

intmain()

;sort

(a, a +10)

;、、a就是首位址,

for(int i =

0; i <10;

++i) cout<;int s, e;

s =lower_bound

(a, a +10,

5); e =

upper_bound

(a, a +10,

5); cout

return0;

}

感悟

#貪心演算法

尋找最優解的問題,從區域性到整體,

給定乙個載重量為m的揹包,考慮n個物品,其中第i個物品的重量 ,價值wi (1≤i≤n),要求把物品裝滿揹包,且使揹包內的物品價值最大。

怎麼貪?

本來我們要用乙個包收起最有價值的東西,空間是一定的,我們會想

1多裝物品,每次挑輕的物品;

3選價值大的物品;

但是總會不盡人意,因為每樣東西的價值是不一樣的。在這個題中引進了價效比這個概念。

按價效比從高到底的順序選取物品;

部分STL簡單應用知識點

stl中的部分簡單應i用包括棧 stack 佇列 queue 其中佇列還有特殊的優先佇列 priority queue 還有vector 動態陣列 其次還有sort排序以及生成排序等多種排序方法,其中包括upper bound和lower bound的定址排序法方便返回特定元素的第乙個位置。其次還有...

部分STL簡單應用知識點

stl中的部分簡單應i用包括棧 stack 佇列 queue 其中佇列還有特殊的優先佇列 priority queue 還有vector 動態陣列 其次還有sort排序以及生成排序等多種排序方法,其中包括upper bound和lower bound的定址排序法方便返回特定元素的第乙個位置。其次還有...

STL不熟知識點總結

在前面已經總結了stl基本知識點的應用,本篇部落格我將主要總結一下自己對stl這一方面不熟的知識點。一.用迭代器遍歷map中的元素 訪問標準容器的元素的通用方法是使用迭代器 for map iterator it b.begin it b.end it 2.it first 表示用迭代器指向map中...