数组:
int a[N]; sort(a, a+N);//排序函数 next_permutation(a, a+N);//全排列函数vector:
vector<int> s; vector<int> s(n);//定义一个含有n 个int 元素的vector 对象。 vector<int> s(first, last);//定义一个vector 对象,并从由迭代器first 和last 定义的序列[first,last]中复制初值。 s[i]//直接以下标方式访问容器中的元素。 s.front()// 返回首元素。 s.back()// 返回尾元素。 s.push_back(x)//向表尾插入元素x。 s.size() //返回表长。 s.empty() //当表空时,返回真,否则返回假。 s.pop_back() //删除表尾元素。 s.begin() //返回指向首元素的随机存取迭代器。 s.end() //返回指向尾元素的下一个位置的随机存取迭代器。 s.insert(it, x) //向迭代器it 指向的元素前插入新元素val。 s.insert(it, n, x)//向迭代器it 指向的元素前插入n 个x。 s.insert(it, first, last)//将由迭代器first 和last 所指定的序列[first, last)插入到迭代器it 指向的元素前面。 s.erase(it)//删除由迭代器it 所指向的元素。 s.erase(first, last)//删除由迭代器first 和last 所指定的序列[first, last)。 s.reserve(n)//预分配缓冲空间,使存储空间至少可容纳n 个元素。 s.resize(n)//改变序列的长度,超出的元素将会被删除,如果序列需要扩展(原空间小于n),元素默认值将填满扩展出的空间。 s.resize(n, val)//改变序列的长度,超出的元素将会被删除,如果序列需要扩展(原空间小于n),将用val 填满扩展出的空间。 s.clear()//删除容器中的所有的元素。 s.swap(v)//将s 与另一个vector 对象v 进行交换。 sort(s.begin(), s.end());//排序函数 next_permutation(s.begin(), ivec.end());//全排列函数 for (vector<int>::iterator it=s.begin(); it!=s.end();it++)//iterator用法 cout << *it << " ";pair pair函数主要用来表示一个二元组 例如,想要定义一个对象表示一个平面坐标点时
pair<double, double> p1; cin >> p1.first >> p1.second;stack
stack<int> s; s.push(x);//入栈 s.pop();//出栈 s.top();//访问栈顶 s.empty();//判断栈空,当栈空时,返回true。 s.size();//访问栈中的元素个数queue
queue<int> q; q.push(x); 入队将x 接到队列的末端。 q.pop();出队 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。 q.front();访问队首元素即最早被压入队列的元素。 q.back();访问队尾元素即最后被压入队列的元素。 q.empty();判断队列空当队列空时,返回true。 q.size();访问队列中的元素个数priority_queue(优先队列) priority_queue 模板类有三个模板参数,第一个是元素类型,第二个容器类型,第三个是比较算子。
priority_queue<int, vector<int>, greater<int> > q3; // 定义小的先出队map map用有序二叉树来存贮类型为pair<const Key, T>的元素对序列,map 中所有元素的Key 值都必须是唯一的,第一个是键值类型,第二个是元素类型,第三个是比较算子,map 模板类需要四个模板参数,第四个是分配器类型。其中键值类型和元素类型是必要的。
map<string, int> m;//定义map 对象 m[key] = value;//向map 中插入元素 m.insert( make_pair(key, value) );//向map 中插入元素 int i = m[key];//查找元素对 m.erase(key);//删除与指定key 键值相匹配的元素对,并返回被删除的元素的个数。 m.erase(it);//删除由迭代器it 所指定的元素对,并返回指向下一个元素对的迭代器。