2023年3月1日訓練日記

2021-09-11 17:52:07 字數 3178 閱讀 5363

最近就看了一下stl的內容,總結一下,stl就是乙個資料容器,所有的操作都是對容器裡的資料進行操作

1,stack棧,這是乙個先進後出的資料結構,它只有乙個出口,只能對棧頂元素進行操作,就像乙個教室只有乙個門,先進去的人只能後出。

stack儲存在

定義:stackstack_name;

如:stack a,stackc;

操作:empty() – 返回bool型,表示棧內是否為空 (s.empty() )

size() – 返回棧內元素個數 (s.size() )

top() – 返回棧頂元素值 (s.top() )

pop() – 移除棧頂元素(s.pop(); )

push(data_type a) – 向棧壓入乙個元素 a(s.push(a); )

#include#include#include#includeusing namespace std;

int main()

執行的結果就是 「

03 3 2」

2queue佇列

queue是一種先進先出的資料結構,從底端加入元素,從頂端取出元素。就像乙個教室有兩個門一邊進學生一邊出學生,吧元素全部壓入後對底端元素處理,

queue包含在標頭檔案標頭檔案:

定義:queue queue_name;

如:queue q;

(1)push();就是從已有元素後面增加元素

queueq;

q.push("coding");

cout<(2)front();返回佇列的第乙個元素的值,這裡只是返回,並沒有把它剔除佇列。

queueq;

q.push("hahahaha");

q.push("abcd");

cout<(3)back();返回佇列的最後乙個元素的值。

queueq;

q.push("hahahaha");

q.push("abcd");

cout<(4)pop();刪除第乙個元素

queueq;

q.push("hahahaha");

q.push("bald man!");

pop();

cout<(5)empty();判斷佇列是否為空,若為空則返回true。

queueq;

cout<(6)size();返回佇列元素個數

queueq;

q.push("hahahaha");

q.push("abcd");

cout<3,vector容器標頭檔案為

vectorv1; // 建立空容器,其物件型別為string類

vectorv2(10); // 建立有10個具有初始值(即空串)的string類物件的容器

vectorv3(5, "hello"); // 建立有5個值為「hello」的string類物件的容器

vectorv4(v3.begin(), v3.end()); // v4是與v3相同的容器(完全複製)

bool empty() ;                    // 如果為容器為空,返回1;否則返回0

size_type max_size(); // 返回容器能容納的最大元素個數

size_type size(); // 返回容器中元素個數

size_type capacity(); // 容器能夠儲存的元素個數,有:capacity() >= size()

void resize(size_type n, t x = t()); // 確保返回後,有:size() == n;如果之前size()#include#include using namespace std;

void main()

} for( j = 0; j < 10; j++ )

cout<< endl;

}}

#include #include #include using namespace std;

int main()

cout << "size: " << a.size() << endl;//輸出這個陣列的長度

a.pop_back();將最尾端元素刪除即刪除1

a[0] = 1;

cout << "size: " << a.size() << endl;//長度為4

for (int i = 0; i < (int)a.size(); ++i)

cout << endl;

return 0;

}輸出結果是

size: 5

size: 4

1,4,

3,2,

4,sort排序標頭檔案是

sort排序預設從小到大排序

sort(a,a+n)

如果想從大到小排序就要寫乙個函式

bool cmp(int a,int b)

sort(a,a+n,cmp)

5,upper_bound 和 lower_bound

upper_bound(begin, end, value); 

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

lower_bound(begin, end, value);

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

num = ;

lower_bound(num, num + 6, 2)為num + 1

upper_bound(num, num + 6, 2)為num + 3

#include #include #include using namespace std;

int main();

sort(a, a + 10);

for (int i = 0; i < 10; ++i)

{cout《這兩個函式就類似於二分查詢吧

對於upper_bound來說,返回的是被查序列中第乙個大於查詢值的指標,也就是返回指向被查值》查詢值的最小指標,

lower_bound則是返回的是被查序列中第乙個大於等於查詢值的指標,也就是返回指向被查值》=查詢值的最小指標。

所以使用前要對序列進行排序。

目前經過查詢資料和對課件的分析就總結了這些。

2023年3月2日訓練日記

差分約束 2 sat小結 差分約束 1 題目特徵一般比較明顯,是求解關於一組變數的特殊不等式組。2 一般分三種 最長路 求最小值 最短路 求最大值 判斷解是否存在 判負環 3 建邊的時候一定要注意隱含的不等式。根據題目所給資訊靈活加邊加超級源點,靈活應對各種不同的輸出。核心還是建邊。4 經典的應用有...

2023年3月6日訓練日記

上完一整天的課,數分高代連著上的感覺真是爽呀 不過這樣的一天要比閒著充實的多,其實上課有時候還是很有趣的。回到今天的 中,明天一天的空課,做完作業後應該可以多寫幾個 了,雖然也不一定能寫出來,真的很辜負老師對我的期望呀,感覺有點小愧疚。每天忙忙碌碌的不知道一天在幹啥,其實每天真的有這麼忙嗎,捫心自問...

2023年3月30日訓練日記

昨天從下午五點就開始做題,中間有段時間沒做,然後一直做題到一點多,熬得有點晚了,但是那種ac和排名一直往上的感覺簡直不要太爽了,本來一點多還不想睡,但是熬不住了,到了早上七點多室友起床我也跟著醒了,確實困,但是心裡一直想著還有三道題就ak了,心裡有事就睡不著,趕緊起床去洗把臉,然後把電腦拿出來開始做...