<Standard Template Library>标准模板库专项复习总结(一)
看了看博客园的申请时间也一年多了...想想自己一年多以来一直处于各种划水状态,现在又要面临ACM的冲击...
还是要抓紧时间赶紧复习一下了- -毕竟校园新生赛还是有奖金的..
1.栈
先进后出(LIFO)表
头文件:#include<stack>
变量的定义:stack<TYPE>StackName
成员函数:
bool empty() 栈为空返回true,否则返回false
void pop() 删除栈顶元素
void push(const TYPE &val) 进栈
size_type size() 返回栈的数目
TYPE& top() 查看栈首
2.动态数组
头文件:#include<vector>
变量的定义:vector<TYPE>vectorName
成员函数:
TYPE& size() 返回数组的数目
bool empty() 数组为空返回true,否则返回false
void clear() 清空数组
* begin() 返回第一个数据的地址
* end() 返回最后一个数据的地址
void pop_back() 删除最后一个数据
* insert(a,b) 在a位置插入b
void insert(a,n,b) 在a位置插入n个b
void insert(a,beg,end) 在a位置插入beg到end之间的数据
void swep(vector) 互换两个vector
3.映射
头文件:#include<map>
变量的定义:map<TYPE,TYPE>mapName
map<key,elem> 一个map,以less<>为排序准则 map<key,elem,op> 一个map,以op为排序准则
另外需要定义迭代器(iterator)
map<string,float>::iterator pos;
类似于指针,解释一下就是:
当迭代器pos指向map中的某个元素,表达式pos->first获得该元素的key,表达式pos->second获得该元素的value
举个例子:(摘自https://blog.csdn.net/shawn_hou/article/details/38035577)
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main()
{
map<int, string> mapStudent;
mapStudent.insert(pair<int, string>(, "student_one"));
mapStudent.insert(pair<int, string>(, "student_two"));
mapStudent.insert(pair<int, string>(, "student_three"));
map<int, string>::iterator iter;
for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)
cout<<iter->first<<' '<<iter->second<<endl;
}
成员函数:
iterator begin() 返回指向第一个元素的迭代器
iterator end() 返回指向最后一个元素的迭代器
void clear() 清空map
bool empty() 返回是否map为空
void insert() 插入
TYPE& size() 返回map大小
*也可以直接使用pair类型输入
#include<cstdio>
#include<iostream>
#include<cstring>
#include<map>
#include<vector>
#include<queue>
#define MAXN
using namespace std;
int n,x,y;
int main(){
ios::sync_with_stdio(false);
map<int,int>m;
m.insert(pair<int,int>(,));
cin>>n;
for(register int i=;i<=n;i++){
cin>>x>>y;
pair<int,int> p (x,y);
m.insert(p);
} cout<<endl;
for(register map<int,int>::iterator i=m.begin();i!=m.end();i++){
pair<int,int>it=*i;
cout<<it.first<<" "<<it.second<<endl;
}
return ;
}
原文:https://blog.csdn.net/NOIAu/article/details/72923307
------对于没有数据结构基础的小白,比如不知道什么是迭代器什么是pair可以自行百度
总而言之,map=pair+set
#include<cstdio>
#include<iostream>
#include<map>
using namespace std;
int main(){
map<string,float> c;
c.insert(make_pair("Cafe",7.75));
c.insert(make_pair("Banana",1.72));
c["Wine"]=15.66;
map<string,float>::iterator pos;
for(pos=c.begin();pos!=c.end();pos++){
cout<<pos->first<<" "<<pos->second<<endl;
}
return ;
}
<Standard Template Library>标准模板库专项复习总结(一)的更多相关文章
- <Standard Template Library>标准模板库专项复习总结(二)
4.队列 先进先出(FIFO)表 头文件:#include<queue> 变量的定义:queue<TYPE>queueName 成员函数: bool empty() 空队列返回 ...
- C++ 标准模板库(STL)
C++ 标准模板库(STL)C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), ...
- link-1-STL 标准模板库
STL(Standard Template Library,标准模版库)是C++语⾔言标准中的重要组成部分.STL以模板类和模版函数的形式为程序员提供了了各种数据结构和算法的实现,程序员吐过能够充分的 ...
- C++标准模板库Stand Template Library(STL)简介与STL string类
参考<21天学通C++>第15和16章节,在对宏和模板学习之后,开启对C++实现的标准模板类STL进行简介,同时介绍简单的string类.虽然前面对于vector.deque.list等进 ...
- STL标准模板库(简介)
标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...
- 【转】C++标准库和标准模板库
C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费 ...
- C++ Standard Template Library STL(undone)
目录 . C++标准模版库(Standard Template Library STL) . C++ STL容器 . C++ STL 顺序性容器 . C++ STL 关联式容器 . C++ STL 容 ...
- 【c++】标准模板库STL入门简介与常见用法
一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部 ...
- STL 简介,标准模板库
这篇文章是关于C++语言的一个新的扩展--标准模板库的(Standard Template Library),也叫STL. 当我第一次打算写一篇关于STL的文章的时候,我不得不承认我当时低估了这个话 ...
随机推荐
- PLAY2.6-SCALA(三) 数据的返回与保存
1.修改默认的Content-Type 自动设置内容类型为text/plain val textResult = Ok("Hello World!") 自动设置内容类型为appli ...
- js函数易犯的错误
1.定义一个js函数时不能写在另一个函数里面. 2.定义一个打开网页自动执行的函数,一定要注意加载的顺序.如果是不是自动执行的,而是等页面加载完后事件触发的,那写在任何地方都没问题. 错误的:
- element-ui select 二级联动
在使用select 选择框时,2个select 怎么关联在一起(第一个值发生变化,第二个select值随第一个变化而不同) 两个输入框代码 <el-form :inline="tru ...
- mysql设置text字段为not null,并且没有默认值,插入报错:doesn't have a default value
一.问题描述 在往数据库写入数据的时候,报错: '字段名' doesn't have a default value 本来这个错误是经常见到的,无非就是字段没有设置默认值造成的.奇怪的是,我这边报错的 ...
- Docker Swarm:经济高效的容器调度
本文探讨了几种容器调度策略,并以内存约束为例,讨论了如何利用Docker Swarm,通过资源约束实现容器的合理调度.其中,对容器资源的约束,包括硬约束和软约束,硬约束是指内存资源的实际限制条件,而软 ...
- 关于编码的发展演变:ASCII、GB2312、GBK、gb18030、Unicode、UTF-8
[1]ASCII 每个字符占据1bytes(字节),第一次以规范标准发表是在1967年,最后一次修订是在1986年.用二进制表示的话最高位必须为0(扩展的ASCII不在考虑范围内),因此ASCII只能 ...
- ELK3之进阶学习
1.昨日内容回顾 es的基本操作:增删改查 es的两种查询方式: (1)query string (2)query DSL match match match_all sort bool:must,s ...
- 括号序列问题 uva 1626 poj 1141【区间dp】
首先考虑下面的问题:Code[VS] 3657 我们用以下规则定义一个合法的括号序列: (1)空序列是合法的 (2)假如S是一个合法的序列,则 (S) 和[S]都是合法的 (3)假如A 和 B 都是合 ...
- Java实现接口用来弥补Java单继承的缺陷
package com.test3;/** * @author qingfeng * 功能:继承类 VS 实现接口 :两者之间的关系(实现接口用来弥补Java单继承的缺陷) */public clas ...
- oralce分析函数如何工作
语法 FUNCTION_NAME(<参数>,…) OVER (<PARTITION BY 表达式,…> <ORDER BY 表达式 <ASC DESC> &l ...