第一周總結

2021-10-22 02:13:43 字數 3258 閱讀 5703

第一周總結

新知識:

1:stl簡單應用

2:運算子過載

3:簡單的建構函式和析構函式

4:cin輸入存在返回值,可以配合迴圈使用

stl簡單應用:

1.string字串型別:將字串定義成乙個新的資料型別,使得其能夠和其他基本資料型別相識,可以進行運算。

基本操作:

s.

empty()

//s為空返回true,否則返回false.

s.size()

//返回s中字元的個數。

s.c_str()

//返回字串對應位置的首位址

2.棧(stack)<stack>:只能操作頂端元素,先進後出。

定義:stackstack_name;

如:stack <int> s;

基本操作:

empty()

// 返回bool型,表示棧內是否為空 s.empty()

size()

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

top(

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

pop(

)//移除棧頂元素s.pop()

push

(data_type a)

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

3.佇列(queue)<queue>:從頂端加入元素,從底端取出元素,先進先出。

定義:queue queue_name;

如:queue <int> q;

基本操作:

empty

() 返回bool型,表示queue是否為空 q.

empty()

size

() 返回queue內元素個數 q.

size()

front

() 返回queue內的下乙個元素 q.

front()

back

() 返回queue內的最後乙個元素q.

back()

pop(

) 移除queue中的乙個元素q.

pop(

)push

(data_type a)

-- 將乙個元素a置入queue中q.

push

(a)

4.優先佇列<queue>:乙個擁有權值觀念的queue,自動依照元素的權值排列,權值最高排在前面。預設情況下,priority_queue是利用乙個max_heap完成的

定義:priority_queue priority_queue_name;

如:priority_queue <int> q;//預設是大頂堆

基本操作:

q.

push

(elem) 將元素elem置入優先佇列

q.top

() 返回優先佇列的下乙個元素

q.pop

() 移除乙個元素

q.size

() 返回佇列中元素的個數

q.empty

() 返回優先佇列是否為空

5.sort函式<algorithm>

sort(begin, end);預設從小到大排列

sort(begin, end, cmp);

bool cmp(int a, int b);

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

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

8.set 和 multiset<set>

set 和 multiset會根據特定的排序準則,自動將元素排序,兩者的不同之處在於multiset可以允許元素重複而set不允許元素重複。

定義:定義:set set_name;

如:set <int> s; //預設由小到大排序

如果想按照自己的方式排序,可以過載小於號。

struct new_type

}操作:

s.

insert

(elem)

-- 安插乙個elem副本,返回新元素位置。

s.erase

(elem)

-- 移除與elem元素相等的所有元素,返回被移除的元素個數。

s.erase

(pos)

-- 移除迭代器pos所指位置上的元素,無返回值。

s.clear()

-- 移除全部元素,將整個容器清空。

s.size()

-- 返回容器大小。

s.empty()

-- 返回容器是否為空。

s.count

(elem)

-- 返回元素值為elem的元素的個數。

s.lower_bound

(elem)

-- 返回 元素值》= elem的第乙個元素位置。

s.upper_bound

(elem)

-- 返回元素值 > elem的第乙個元素的位置。

以上位置均為乙個迭代器。

s.begin()

-- 返回乙個雙向迭代器,指向第乙個元素。

s.end()

-- 返回乙個雙向迭代器,指向最後乙個元素的下一 個位置

迭代器舉例:

multiset <int> :: iterator pos;

運算子過載

型別 類名::operator op(參數列)

{//相對於該類定義的操作

}struct t1

}; //將該結構體變數按公升序排列.

簡單的建構函式與析構函式

建構函式:在定義物件時自動呼叫,不能有返回值包括void,需要宣告為共有,否則在呼叫函式是不合理。

無參定義:(類名::)類名(無參或有預設值)

{}有參定義:(類名::)類名(參數列)。

學習感悟

貪心演算法:從區域性考慮,每乙個區域性最優解,造成整體最優解。

例題:健談的奶牛問題:每個奶牛的聲音要與和其他奶牛距離相同才能被聽到,計算n*(n-1)頭奶牛共同叫時發出的聲音。

想法:先公升序排列,用後一頭減去一頭,結果2,但容易造成超時。考慮用一重迴圈

for(j=2;j<=n;++j)

這個題要注重總結距離規律。

好難,加油!

第一周總結

第一周學習總結 第一周,我們有學習,計算機的發展,起源,計算機的各種進化,還有計算機的概念,計算機的語言,計算機的組成這些等等。讓我深刻的意識到這是很龐大的一門課程,同時也對我們接下來要學習的課程充滿了期待。對於我自己來說,第一周的學習我還是覺得挺不錯的,挺開心的,能認識到這麼多的朋友,這麼多的知識...

第一周總結

第一周這麼快就過去了,剛開學第一周,沒能擠出很多時間來學習,週六看了一天的課件,把老師給的三個課件看了個遍,線段樹講解和 裡都有很多題目,通過講解更徹底的了解了一下線段樹的原理,線段樹構造,區間查詢,單點更新,區間更新都更具體的講解了一下。後面還有常用的一些模版,也研究了一下,熟悉了具體的原理。主要...

第一周總結

恩。作為新成員,加入大佬雲集的團體 當然,我是小透明.心理壓力特別大,因為我學習比較被動,並且比較慢,相比其他新成員 我的進度條真的相當於沒有動,深深的感覺到自己是個菜雞 很多人已經看完了html,造成這個問題可能有以下幾個原因 1.我覺得不能說我沒有用心,也不能說我不認真不努力 只是說比你優秀的人...