当前位置:网站首页>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 .
边栏推荐
- How to generate unique file names
- USB (十七)2022-04-15
- 家用电器行业渠道商协同系统解决方案:助力家电企业快速实现渠道互联网化
- Cloud native data warehouse analyticdb MySQL user manual
- POJ2392 SpaceElevator [DP]
- Add data analysis tools in Excel
- 14、 Two methods of database export and import
- Mysql索引优化实战二
- php 使用阿里云存储
- When copying something from the USB flash disk, an error volume error is reported. Please run CHKDSK
猜你喜欢
三问TDM
UE4_UE5蓝图command节点的使用(开启关闭屏幕响应-log-发布全屏显示)
Matlab-SEIR传染病模型预测
Ros2 topic (03): the difference between ros1 and ros2 [02]
Wechat forum exchange applet system graduation design (2) applet function
Install a new version of idea. Double click it to open it
Wechat forum exchange applet system graduation design completion (1) development outline
Wechat forum exchange applet system graduation design completion (8) graduation design thesis template
MySQL Index Optimization Practice II
十三、系统优化
随机推荐
Kubernetes' simplified data storage storageclass (creation, deletion and initial use)
PMP project management exam pass Formula-1
城联优品作为新力量初注入,相关上市公司股价应声上涨150%
USB(十六)2022-04-28
Installing spss25
Wechat forum exchange applet system graduation design completion (1) development outline
php 使用阿里云存储
家用电器行业渠道商协同系统解决方案:助力家电企业快速实现渠道互联网化
产业共融新势能,城链科技数字峰会厦门站成功举办
Wechat forum exchange applet system graduation design (5) assignment
Coreseek: the second step is index building and testing
1. Sum of two numbers
JMeter interface automated test read case, execute and write back result
Dynamics 365 find field filtering
十三、系统优化
ROS2专题(03):ROS1和ROS2的区别【01】
Caip2021 preliminary VP
Network security -burpsuit
系统设计概述
The 19th Zhejiang Provincial Collegiate Programming Contest 2022浙江省赛 F.EasyFix 主席树