当前位置:网站首页>One week learning summary of STL Standard Template Library
One week learning summary of STL Standard Template Library
2022-07-07 23:25:00 【zjsru_ Beginner】
In the face of STL In the process of learning , I have a certain basic understanding of containers , Containers are divided into 8 Parts of +2 Operations .
- list( list )
- stack( Stack - Elements come in and out )
- queue( queue - Element first in first out )
- priority_queue( Priority queue ,)
- deque( deque )
- vector( vector )
- set/multiset/bitset( aggregate )
- map/multimap
- sort( The sorting operation )
- reverse /random_shuffle/unique( The horse / Generate random number / Delete adjacent data fetches and keep only one )
Briefly introduce the common features of containers, namely, general functions :
- .begin()// Initial address
- .end()// The next position of the last element
- .size()// Elements in the container , Unsigned integer
- .swap(b)// In exchange for
- ::iterator// iterator
- .empty()// Determine whether it is null
- .front()// Returns the first element
- .back()// Return to the last element
iterator
Function similar to pointer , Used to access containers ( The data structure used to hold elements ) The elements in , I'm a little confused myself , It's like a pointer , It can traverse all the elements in the structure you use , You won't miss one , When using, just consider the previous , Next, add the use of delete operation ,! You can click the explanation link , After reading it, I can basically understand .
Iterator based vector Code for :
for(vector<int>::iterator it=a.begin();it!=a.end();it++) cout<<*it<<endl;//a Indicates the container name used ,it Represents a variable that can be changed
With list( list ) Introduce the template in detail
Definition :list It's a two-way list , You can insert and delete... In constant time , I won't support it Array representation and random access . Use list when , Need to introduce header file #include<list>.
ps: In the process of writing header file , You can use #include<bits/stdc++.h> The way to be lazy . This header file contains all other header files .
list The included special member functions include
- merge(b)// Merge two sequential tables ,b Set to empty
- remove(b)// Delete b All of the nodes
- splice(pos,b)// stay pos Position insert b
- reverse()// Invert the content
- sort()// Sort
- unique()// Compress the same elements consecutively into one
- push_front(x)/push_back(x)// Insert from the head or tail of the chain
- pop_front()/pop_back()// Remove from the head or tail of the chain
- front()/back()// Return the element of the head or tail
- insert(p,t)// stay p Insert before t
- erase(p)// erase p
- clear()// Empty the list
1: First, we create a list through the iterator , The code is as follows :
#include <iostream> #include <list> #include <iterator> //#include <algorithm> using namespace std; void print(list<int> &a) { for(list<int>::iterator is=a.begin(); is != a.end(); is++) cout<<" "<<*is; } int main () { list<int>first(3,6);// The list is initialized to 3 individual 6 print(first); return 0; }
design sketch
1:merge(b)// Merge two sequential tables ,b Set to empty :
list<int>q(2,8); first.merge(q);// At this time q Set to blank , take q Content in connects to first among print(first);
design sketch :
2: remove(b)// Delete b All of the nodes :
first.remove(6);// Specify to delete all in the linked list 6 The number of
design sketch :
The following operations are not attached to the picture effect for self-test !!!
3:splice(pos,b)// stay pos Position insert b,b The content of can be a single number , It can also be the content of the whole list .
first.splice(first.begin,a);// stay first Insert at the beginning of the list a list
4:reverse()// Invert the content
reverse (first.begin(),first.end());
5:sort(begin At first , end End , compare greater<int>( type ))
// Sort
first.sort();// Default ascending order sort(first,fisrt+3,bool);//bool It is a descending function bool com(int x,int y) { return x>y; }
6:unique()// Compress the same elements consecutively into one
first.unique();
7:push_front(x)/push_back(x)// Insert from the head or tail of the chain
push_front(i);//i Insert content for push_back(i);
8:pop_front()/pop_back()// Go from the head or tail of the chain
first.pop_front(); first.pop_back();
9:front()/back()// Return the element of the head or tail
cout<<first.front()<<endl; cout<<first.back()<<endl;
10:insert(p,t)// stay p Insert before t
int p[5]={55,66,77,88,99}; first.insert (position:first.begin(),first:p,begin:p+3);// stay first Beginning , Insert p Array index from 0 To 2 The elements of print(first);
11:erase(p)// erase p
For the list erase The operation is really troublesome , Use it here string A simple introduction to the use of strings
#include<bits/stdc++.h> using namespace std; int main() { string str = "wangjianwen"; cout<<str.erase(0,1)<<endl;// The first parameter is position , The second is length , The running result is angjianwen }
12:clear()// Empty the list , A simple .
first.clear();
about STL For containers, their function functions are similar , You can study by yourself , Only after you have typed the code can you remember it more firmly , This is the end of this section .
边栏推荐
- USB(十四)2022-04-12
- USB(十六)2022-04-28
- 2021ICPC上海 H.Life is a Game Kruskal重构树
- Wechat forum exchange applet system graduation design (2) applet function
- Introduction to redis and jedis and redis things
- How to generate unique file names
- 包装行业智能供应链S2B2B商城解决方案:开辟电商消费新生态
- Inftnews | web5 vs Web3: the future is a process, not a destination
- 2021icpc Shanghai h.life is a game Kruskal reconstruction tree
- Wechat forum exchange applet system graduation design completion (7) Interim inspection report
猜你喜欢
三问TDM
PMP project management exam pass Formula-1
Add data analysis tools in Excel
2021icpc Shanghai h.life is a game Kruskal reconstruction tree
ArcGIS: field assignment_ The attribute table field calculator assigns values to fields based on conditions
Install a new version of idea. Double click it to open it
Matlab SEIR infectious disease model prediction
包装行业智能供应链S2B2B商城解决方案:开辟电商消费新生态
产业共融新势能,城链科技数字峰会厦门站成功举办
Oracle database backup and recovery
随机推荐
leetcode-520. Detect capital letters -js
Quelles sont les similitudes et les différences entre les communautés intelligentes et les villes intelligentes?
Cloud native is devouring everything. How should developers deal with it?
PCB wiring rules of PCI Express interface
Tree background data storage (using webmethod) [easy to understand]
高效的S2B2C电商系统,是这样帮助电子材料企业提升应变能力的
Unity3d Learning Notes 6 - GPU instantiation (1)
聊聊支付流程的设计与实现逻辑
违法行为分析1
Cloud native data warehouse analyticdb MySQL user manual
HDU 4747 mex "recommended collection"
云原生数据仓库AnalyticDB MySQL版用户手册
php 使用阿里云存储
JS get the key and value of the object
Vs extension tool notes
Unity3d learning notes 5 - create sub mesh
Grid
Dynamic agent explanation (July 16, 2020)
Network security - Eternal Blue
Redhat下安装fedora