标签:返回 添加 ios 清空 软件库 order 保存 empty put
以下摘录自wiki
STL又称标准模板库,是一个c++软件库,其中包含4个组件,分别为:
- 算法
- 容器
- 函数
- 迭代器
STL将“在数据上的操作”与“要执行操作的数据分开”,分别以如下概念指代:
- 容器:包含、放置数据的地方。
- 迭代器: 在容器中指出一个位置、或成对使用以划定一个区域,用来限定操作所涉及到的数据范围。
- 算法: 要执行的操作。
总而言之,STL在编程的方方面面都有着巨大的作用,接下来将介绍常用的STL以及用法。
Vector向量容器可在尾端插入或者删除元素,可动态调整所占用的内存空间,可以将其看作是以顺序结构实现的线性表。vector可以保存任意类型的变量,包括用户自定义的数据类型。
#include <vector>
vector<T> vec ;
#include <iostream> #include <vector> //STL组件属于std名称空间,以下不再赘述 using namespace std ; int main(){ cout << "enter the number of element:" << endl ; int num ; cin >> num ; if ( num == 0 ){ cout << "please enter again" << endl ; cin >> num ; } //定义一个数据类型为 int 的 vector 容器 vec vector<int> vec ; for ( int i = 0 ; i < num ; i ++ ){ cout << "input: " ; int number ; cin >> number ; //将元素添加至表尾 vec.push_back(number) ; } //定义一个正向迭代器 it vector<int>::iterator it ; //定义一个反向迭代器 rit vector<int>::reverse_iterator rit ; cout << endl << "output:" << endl ; //正向输出 cout << "in order: " << endl ; for ( it = vec.begin() ; it != vec.end() ; it ++ ){ cout << *it << " " ; } cout << endl ; //反向输出 cout << "reverse order: " << endl ; for ( rit = vec.rbegin() ; rit != vec.rend() ; rit ++ ){ cout << *rit << " " ; } cout << endl << endl ; //插入操作 cout << "insert:(position , element)" << endl ; int pos , element ; cin >> pos >> element ; if ( pos < 0 || pos > vec.size() ){ cout << "please enter position again" << endl ; cin >> pos ; } vec.insert(vec.begin() + pos , element) ; cout << "there are *" << vec.size() << "* numbers now" << endl ; cout << "output:" << endl ; for ( it = vec.begin() ; it != vec.end() ; it ++ ){ cout << *it << " " ; } cout << endl << endl ; //删除操作 cout << "erase:(begin , end)" << endl ; int first , last ; cin >> first >> last ; if ( first < 0 || last > vec.size() ){ cout << "please enter again" << endl ; cin >> first >> last ; } vec.erase(vec.begin() + first , vec.begin() + last) ; if ( !vec.empty() ){ cout << "there are *" << vec.size() << "* numbers now" << endl ; for ( it = vec.begin() ; it != vec.end() ; it ++ ){ cout << *it << " " ; } }else{ cout << "the vector is empty now!" << endl ; } cout << endl ; return 0 ; }
本篇文章进行过程中参考了大量资料,对wiki贡献者以及各博主对天性愚钝的我给予知识上的补充表示深深的感谢。
标签:返回 添加 ios 清空 软件库 order 保存 empty put
原文地址:https://www.cnblogs.com/Cantredo/p/9692313.html