寒假训练第一天(stl)
vector
用于定义数组,可用范围大,内容量可变。vector里面仍可以加vector而构成2维数组。
以下是可以用在vector里的一些操作
1.push_back() 在数组的最后添加一个数据
2.pop_back() 去掉数组的最后一个数据
3.at() 得到编号位置的数据
4.begin() 得到数组头的指针
5.end() 得到数组的最后一个单元+1的指针
6.front() 得到数组头的引用
7.back() 得到数组的最后一个单元的引用
8.max_size() 得到vector最大可以是多大
9.capacity() 当前vector分配的大小
10.size() 当前使用数据的大小
11.resize() 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
12.reserve() 改变当前vecotr所分配空间的大小
13.erase() 删除指针指向的数据项
14.clear() 清空当前的vector
15.rbegin() 将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend() 将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty() 判断vector是否为空
18.swap() 与另一个vector交换数据
queue
这是一个先进先出的好东西(FIFO),可以针对一些对先读入的对象进行操作的题目
以下是基本操作
1.back() 返回最后一个元素
2.empty() 如果队列空则返回真
3.front() 返回第一个元素
4.pop() 删除第一个元素
5.push() 在末尾加入一个元素
6.size() 返回队列中元素的个数
stack
这是一个先进后出的好东西(FILO),可以针对一些对后读入的对象进行操作的题目
以下是基本操作
1.empty() 判断stack是否为空,为空返回true,否则返回false
2.size()返回stack中元素的个数
3.pop()删除栈顶元素,但不返回其值
4.top()返回栈顶元素的值,但不删除此元素
5.push(item)在栈顶压入新元素item
map
这是一个将key放在左value放在右的一个东西。比如map<int , string>,这里int表示key的类型是int,value的值是string。理解之后可以将map中的类型灵活更改(虽然现在还不太熟), 比如map<int, map<int, int>>这里key就是int不用多说,但是value变成了一个map(这样可以,问就是试过),通过第一个key可以指向第二个map,这样就可以实现“套娃”,具体情况具体分析。
以下是基本操作
1.begin() 返回指向map头部的迭代器
2.clear() 删除所有元素
3.count() 返回指定元素出现的次数
4.empty() 如果map为空则返回true
5.end() 返回指向map末尾的迭代器
6.equal_range() 返回特殊条目的迭代器对
7.erase() 删除一个元素
8.find() 查找一个元素
9.get_allocator() 返回map的配置器
10.insert() 插入元素
11.key_comp() 返回比较元素key的函数
12.lower_bound() 返回键值>=给定元素的第一个位置
13.max_size() 返回可以容纳的最大元素个数
14.rbegin() 返回一个指向map尾部的逆向迭代器
15.rend() 返回一个指向map头部的逆向迭代器
16.size() 返回map中元素的个数
17.swap() 交换两个map
18.upper_bound() 返回键值>给定元素的第一个位置
19.value_comp() 返回比较元素value的函数
以上是今天写题用到过的stl,总结下来,还是用的太少,争取以后多用。
最后,姑姑保佑!