看了看博客园的申请时间也一年多了...想想自己一年多以来一直处于各种划水状态,现在又要面临ACM的冲击...

还是要抓紧时间赶紧复习一下了- -毕竟校园新生赛还是有奖金的..

1.栈

先进后出(LIFO)表

头文件:#include<stack>

变量的定义:stack<TYPE>StackName

  1. 成员函数:
  2. bool empty() 栈为空返回true,否则返回false
  3. void pop() 删除栈顶元素
  4. void push(const TYPE &val) 进栈
  5. size_type size() 返回栈的数目
  6. TYPE& top() 查看栈首

2.动态数组

头文件:#include<vector>

变量的定义:vector<TYPE>vectorName

  1. 成员函数:
  2. TYPE& size() 返回数组的数目
  3. bool empty() 数组为空返回true,否则返回false
  4. void clear() 清空数组
  5. * begin() 返回第一个数据的地址
  6. * end() 返回最后一个数据的地址
  7. void pop_back() 删除最后一个数据
  8. * insert(a,b) a位置插入b
  9. void insert(a,n,b) a位置插入nb
  10. void insert(a,beg,end) a位置插入begend之间的数据
  11. void swep(vector) 互换两个vector

3.映射

头文件:#include<map>

变量的定义:map<TYPE,TYPE>mapName

  1. map<key,elem> 一个map,以less<>为排序准则
  2.  
  3. map<key,elem,op> 一个map,以op为排序准则

另外需要定义迭代器(iterator)

  1. map<string,float>::iterator pos;

类似于指针,解释一下就是:

  1. 当迭代器pos指向map中的某个元素,表达式pos->first获得该元素的key,表达式pos->second获得该元素的value

举个例子:(摘自https://blog.csdn.net/shawn_hou/article/details/38035577)

  1. #include <map>
  2. #include <string>
  3. #include <iostream>
  4. using namespace std;
  5. int main()
  6. {
  7. map<int, string> mapStudent;
  8. mapStudent.insert(pair<int, string>(, "student_one"));
  9. mapStudent.insert(pair<int, string>(, "student_two"));
  10. mapStudent.insert(pair<int, string>(, "student_three"));
  11. map<int, string>::iterator iter;
  12. for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)
  13. cout<<iter->first<<' '<<iter->second<<endl;
  14. }

  1. 成员函数:
  2. iterator begin() 返回指向第一个元素的迭代器
  3. iterator end() 返回指向最后一个元素的迭代器
  4. void clear() 清空map
  5. bool empty() 返回是否map为空
  6. void insert() 插入
  7. TYPE& size() 返回map大小

*也可以直接使用pair类型输入

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<cstring>
  4. #include<map>
  5. #include<vector>
  6. #include<queue>
  7. #define MAXN
  8. using namespace std;
  9. int n,x,y;
  10. int main(){
  11. ios::sync_with_stdio(false);
  12. map<int,int>m;
  13. m.insert(pair<int,int>(,));
  14. cin>>n;
  15. for(register int i=;i<=n;i++){
  16. cin>>x>>y;
  17. pair<int,int> p (x,y);
  18. m.insert(p);
  19. } cout<<endl;
  20. for(register map<int,int>::iterator i=m.begin();i!=m.end();i++){
  21. pair<int,int>it=*i;
  22. cout<<it.first<<" "<<it.second<<endl;
  23. }
  24. return ;
  25. }
  26. 原文:https://blog.csdn.net/NOIAu/article/details/72923307

------对于没有数据结构基础的小白,比如不知道什么是迭代器什么是pair可以自行百度

总而言之,map=pair+set

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<map>
  4. using namespace std;
  5. int main(){
  6. map<string,float> c;
  7. c.insert(make_pair("Cafe",7.75));
  8. c.insert(make_pair("Banana",1.72));
  9. c["Wine"]=15.66;
  10. map<string,float>::iterator pos;
  11. for(pos=c.begin();pos!=c.end();pos++){
  12. cout<<pos->first<<" "<<pos->second<<endl;
  13. }
  14. return ;
  15. }

<Standard Template Library>标准模板库专项复习总结(一)的更多相关文章

  1. <Standard Template Library>标准模板库专项复习总结(二)

    4.队列 先进先出(FIFO)表 头文件:#include<queue> 变量的定义:queue<TYPE>queueName 成员函数: bool empty() 空队列返回 ...

  2. C++ 标准模板库(STL)

    C++ 标准模板库(STL)C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), ...

  3. link-1-STL 标准模板库

    STL(Standard Template Library,标准模版库)是C++语⾔言标准中的重要组成部分.STL以模板类和模版函数的形式为程序员提供了了各种数据结构和算法的实现,程序员吐过能够充分的 ...

  4. C++标准模板库Stand Template Library(STL)简介与STL string类

    参考<21天学通C++>第15和16章节,在对宏和模板学习之后,开启对C++实现的标准模板类STL进行简介,同时介绍简单的string类.虽然前面对于vector.deque.list等进 ...

  5. STL标准模板库(简介)

    标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...

  6. 【转】C++标准库和标准模板库

    C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费 ...

  7. C++ Standard Template Library STL(undone)

    目录 . C++标准模版库(Standard Template Library STL) . C++ STL容器 . C++ STL 顺序性容器 . C++ STL 关联式容器 . C++ STL 容 ...

  8. 【c++】标准模板库STL入门简介与常见用法

    一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部 ...

  9. STL 简介,标准模板库

    这篇文章是关于C++语言的一个新的扩展--标准模板库的(Standard Template Library),也叫STL.  当我第一次打算写一篇关于STL的文章的时候,我不得不承认我当时低估了这个话 ...

随机推荐

  1. Linux进程管理(二、 进程创建)

    通常使用fork创建进程, 也可以用vfork()和clone().fork.vfork和clone三个用户态函数均由libc库提供,它们分别会调用Linux内核提供的同名系统调用fork,vfork ...

  2. 【JZOJ4824】【NOIP2016提高A组集训第1场10.29】配对游戏

    题目描述 流行的跳棋游戏是在一个有m*n个方格的长方形棋盘上玩的.棋盘起初全部被动物或障碍物占满了.在一个方格中,'X'表示一个障碍物,一个'0'-'9'的个位数字表示一个不同种类的动物,相同的个位数 ...

  3. 2019-9-2-win10-uwp-打包第三方字体到应用

    title author date CreateTime categories win10 uwp 打包第三方字体到应用 lindexi 2019-09-02 12:57:38 +0800 2018- ...

  4. core文件相关

    1:当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像.core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的. 当程序接收到以下UNIX信号会产生core文件: ...

  5. 《js高级程序设计》6.1.1-6.1.3——数据属性、访问器属性

    数据属性:该属性包含了一个数据值的位置,它包含了4个描述行为的特性:1. [[Configurable]]:表示是否能通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问 ...

  6. Hibernate错误——No row with the given identifier exists

    错误 是用的是Hibernate自动建立的数据表,在进行数据库操作时,出现错误No row with the given identifier exists 解决 关系数据库一致性遭到了破坏,找到相关 ...

  7. 2019-6-23-WPF-获得当前输入法语言区域

    title author date CreateTime categories WPF 获得当前输入法语言区域 lindexi 2019-06-23 11:51:21 +0800 2018-10-12 ...

  8. 【学生研究课题】CSDN博客数据获取、分析、分享

    题记     这次<对象程序设计>课程设计,一共给定了8个选题(下载WORD版.PDF版),以及自由选题的机会.从大家初步选题结果来看(图1).绝大部分同学选择了"图形用户界面的 ...

  9. oracle函数 TRIM(c1 from c2)

    [功能]删除左边和右边出现的字符串 [参数]C2 删除前字符串 c1 删除字符串,默认为空格 [返回]字符型 [示例] select TRIM('X' from 'XXXgao qian jingXX ...

  10. c++中单引号和双引号的区别

    在C++中单引号表示字符,双引号表示字符串. 例如 :在定义一个数组的时候string a [5]={"nihao","henhao","good&q ...