string詳解
vector《資料型別》name
插入1:name.push_back//在動態數字最後乙個新增
插入2:insert(it,x)//it是迭代器
獲取長度:name.size()
刪除:pop_back();
擦擦:erase[it],或者erase[begin,end]—[begin,end)//擦掉區間的值;
清空(劃重點!!):clear函式雖然能清空vector,但是並不能清掉開的記憶體。有一種方法可以,定義乙個空的vector,然後swap例子:
vector<
int>a
例題:
列印鋸齒矩陣
堆積木最後說明動態陣列:可以巢狀使用,也可以是個陣列(name)//vectora[100]或者vectora;
在常用的stl容器中,只有在vector和string中,才允許使用vi.begin()+x這種迭代器加上整數的寫法。(這裡的x指代常數)
不存在相同的元素;
插入:insert()
刪除:erase()
查詢:count();
獲取個數:size();
插入需要借助元祖,或者直接定義
訪問:直接dic;
查詢:count();
first是key,second是value
例題;網頁跳轉//棧的用法很靈活,有時候需要乙個或兩個;
出列:pop
入列:push
隊首:front
是否為空:empty()
優先佇列與佇列一樣(只不過優先佇列是可以自動排序的 )
這裡有個知識點,c++裡的運算子過載,個人感覺目前看不太懂;
不過,沒關係,從大到小排就用:
priority(int n,vector,less)
從大到小排就用
priority(int n.vector,greater)
當然也可以用元組來排序,先比第乙個的大小,然後再比第二個;
例題任務系統
n個最小和
deque模版類 double-ended queue(雙端佇列) ,支援隨機訪問
支援前插和後插,比stack,queue更靈活;
deque用法全解
並查集有普通的,還有帶權的;
主要有初始化,查詢,合併三個操作(這裡沒有stl庫所以需要自己來做)
初始化:一般是乙個超大的陣列,帶權的是兩是他們a[i]=i(如果還要滿足其他關係的話就再設乙個陣列)//個人感覺這裡是邏輯結構(想要增加限制,就要增加陣列)
查詢:我一般習慣用get(),這裡還伴隨者乙個壓縮和路徑合成操作(這裡也是我感覺最難的乙個地方)
int
get(
int x)
例題:
朋友網路交友
找出所有謊言
接龍通過著一段時間的學習,個人感覺自己不管是**能力和邏輯思維能力上都有了長足的進步.
計蒜客 資料結構 鍊錶 C
鍊錶的插入insert 和刪除delete node 還有輸出,翻轉everse includeusing namespace std class node class linklist void insert node node,int index 第二種特殊情況,就是如果插入節點後的位置是鍊錶首...
資料結構學習總結
了解資料,資料項,資料元素,資料物件的關係。資料元素 組成資料的,具有一定意義的基本單位,在計算機中做整體處理,也稱為記錄。乙個資料元素可以由多個資料項組成。資料物件 資料相同的資料元素的集合,是資料的子集。有的書上也成為資料物件和例項,結合的理解。資料結構可以分為 物理結構和邏輯結構 邏輯結構 集...
資料結構學習總結
隨著2015年的結束,資料結構這門課程也即將結束,這乙個學期跟著賀老師一起通過翻轉課堂的方式學習既新鮮也很慶幸。對這一學期資料結構的學習我想說一說我的感受。這學期資料結構 學了線性結構 樹 圖等等 線性結構包括線性表 棧 佇列 串 陣列 廣義表等 遞迴是程式設計中很重要的一種工具 也是我需要掌握的乙...