stl的一些内置函数用法

一、STL 栈和队列

  • STL
    • vector
    • set
    • string
    • map
    • 全排列
    • 栈和队列

STL

STL包括vector(不定数组)、set(集合)、string(字符串)、map(字典)、全排列next_permutation

vector

vector是一个不定长度的数组,所谓不定长度,就是我们往里扔多少元素,他就有多大,他的访问跟我们原先使用的数组也一样.

vector  ve;//定义一个int型数组ve
ve. erase (ve. begin ()+1); //删除的是第一个元素(下标从0开始)
ve. insert (ve. begin ()+1 ,1); //把删除的再加进去
ve. erase (ve. begin ()+1 , ve. begin ()+4); //删除的第1,2,3 的元素共三个元素
cout <

set

set即是一个集合,这个集合不允许相同的元素存在,所
以set中的元素是唯一的
例如:我们把2,3,4,7,4都扔进set里,那么set里面就会
有2,3,4,7这四个元素

set  st;//定义一个int型set
st. insert () //在集合中插入元素
st. begin () //返回指向第一个元素的迭代器
st. end () //返回指向最后一个元素之后的迭代器,不是最后一个元素
st. clear () //清除所有元素
st. count () //返回bool型,有返回1,无返回0
st. empty () //如果集合为空,返回true
st. erase () //删除集合中的元素
st. find () //返回一个指向被查找到元素的迭代器,如果没找到则返回end()
st. size () //集合中元素的数目

string

string是一个很方便使用的字符串,跟vector差不多,不定长

string s = " hello  ";//定义一个字符串s并初始化
s += "is dog"; //在s的后面加上这一串字符,但不能-
cout < < ==来进行字典序的比较,返回0 or 1
s. clear (); //清空s
cin >>s; //cin输入

map

map即是一个字典,是一种映射即对应关系,map的使用很
方便
例如:我们们个人的学号对应自己的名字,就可以用map来

map < string ,ll > mp;//定义一个名为mp的map, 前面的string是它的key,后者是value
mp[" clody_happy "] = 311709000429 //cloudyhappy对应3117的映射
mp. clear (); //清空mp
cout <

全排列

char s [10] = "012 ";
//按字典序输出012的全排列
do{
printf ("%s\n",s);
} while ( next_permutation (s,s + 3));
//prevpermutation的使用同理

栈和队列

栈和队列是一种特殊的线性表,其区别在于栈是先进后出像
一个瓶子,而队列是先进先出像排队

stark

stack  s;//定义一个int型栈s
s. push (2); //把2从栈顶压入栈
s.top (); //栈顶元素
s.pop (); //弹出栈顶元素
s. empty (); //判断栈是否为空
s. size (); //栈的大小

queue

queue  q;//定义一个int型队列q
q. push (1); //把1推入队列
q. front (); //队首元素
q.pop (); //弹出队首元素
q. empty (); //判断队是否为空
q. size (); //队列的大小

你可能感兴趣的:(学习笔记)