#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/大於5的第乙個值
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中...