stack
后进先出栈
堆栈是一种容器适配器,专门设计用于在LIFO上下文(后进先出)中操作,其中仅从容器的一端插入和提取元素。
stack s; 创建stack对象。
s.empty() 判断是否为空。
s.pop() 在栈的顶部移除元素。
s.push(a) 在栈顶添加元素a。
s.size() 计算栈内元素个数。
s.top() 计算栈对象元素个数。
vector
一个能够存放任意类型的动态数组,能够增加和压缩数据。
vector v; 创建vector对象。
v.push_back(a); 尾部插入数字a。
v.pop_back(a); 尾部去掉数字a。
v.size(); 计算vector内元素个数。
v.clear(); 清空vector内元素。
vector::iterator it ; 定义一个vector迭代器。
reverse(v.begin(),v.end()); 将元素翻转,即逆序排列。
sort(v.begin(),v.end()); 排序(从小到大)。
v.erase(v.begin()+2);删除第3个元素。
v.erase(v.begin()+i,v.end()+j);删除区间[i,j-1];区间从0开始。
v.insert(v.begin()+i,a);在第i+1个元素前面插入a;
queue
队列,是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端进行插入操作,在前端进行删除操作。
队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。
queue q; 创建queue对象。
q.push(x); 将x接到队列的末端。
q.size(); 访问队列中的元素个数。
q.pop(); 弹出队列的第一个元素。
q.front(); 访问队首元素。
q.back();访问队尾元素。
q.empty();判断队列是否为空。
string
string可以用于字符串处理,可以使用输入输出流方式直接进行操作。
append函数可以用来在字符串的末尾追加字符和字符串。由于string重载了运算符,也可以用+=操作实现 。(都是从0开始)
string s,s1;
s.find(s1); 从s中找是否存在s1,返回在第几个位置。
s.append(s1); 在s后面追加s1.
s.append(s1,i,j); 在s后面追加s1的第i个字符开始的j个字符。
s.append(s1,i); 在s后面追加s1的前i个字符。
s+=s1; 可以用+=追加字符。
s.compare(s1); 比较函数,相等返回0,大于返回1,小于返回-1。
s.assign(10,’+’); 给s赋值10个+。
s.replace(i,j,s1); s的第i个字符起j个字符用s1代替。
s,replace(11,3,s1,13,3) ; s的第11个字符起3个字符用s1的第13个字符起3个字符代替。
s.erase(i,j); 删除s的第i个字符起的j个字符。