当前位置:网站首页>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 ofdesign 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 .
边栏推荐
- Experience sharing of system architecture designers in preparing for the exam: the direction of paper writing
- In the field of software engineering, we have been doing scientific research for ten years!
- PMP project management exam pass Formula-1
- Unity3d learning notes 5 - create sub mesh
- Unity3D学习笔记6——GPU实例化(1)
- turbo intruder常用脚本
- Network security - joint query injection
- FreeLink开源呼叫中心设计思想
- V-for traversal object
- 【编译原理】词法分析设计实现
猜你喜欢

Wechat forum exchange applet system graduation design completion (7) Interim inspection report

成年人只有一份主业是要付出代价的,被人事劝退后,我哭了一整晚

Puce à tension stabilisée LDO - schéma de bloc interne et paramètres de sélection du modèle

Oracle database backup and recovery

2021ICPC上海 H.Life is a Game Kruskal重构树

USB(十五)2022-04-14

UE4_UE5蓝图command节点的使用(开启关闭屏幕响应-log-发布全屏显示)

Installing spss25

PMP project management exam pass Formula-1

经纬度PLT文件格式说明
随机推荐
Mysql索引优化实战二
2021ICPC上海 H.Life is a Game Kruskal重构树
USB(十六)2022-04-28
The 19th Zhejiang Provincial College Programming Contest VP record + supplementary questions
LeeCode -- 6. Z 字形变换
LDO voltage stabilizing chip - internal block diagram and selection parameters
Vulnerability recurrence ----- 49. Apache airflow authentication bypass (cve-2020-17526)
Spark 离线开发框架设计与实现
UE4_UE5全景相机
Introduction to redis and jedis and redis things
Redhat下安装fedora
How to generate unique file names
Puce à tension stabilisée LDO - schéma de bloc interne et paramètres de sélection du modèle
FPGA基础篇目录
js 获取对象的key和value
PCI-Express接口的PCB布线规则
Technology at home and abroad people "see" the future of audio and video technology
PMP project management exam pass Formula-1
Network security - joint query injection
1. Sum of two numbers


