#include <iostream>
#include <vector>
#include <map>
#include <unordered_map>
#include <algorithm>
using namespace std; void OutPut(char val)
{
cout << val << ' ';
} int main(int argc, char const *argv[])
{
vector<char> cVec;
cVec.push_back('Z');
cVec.push_back('D');
cVec.push_back('W');
cVec.push_back('S');
cVec.push_back('J');
cVec.push_back('A');
cVec.push_back('U'); cout << "用C++11 for(:)进行遍历" << endl;
cout << "向量排序前:\n";
for(auto x : cVec){
OutPut(x);
} // algorithm内的函数模板 底层还是for(begin,!=end)
cout << endl << endl << "用algorithm内的函数模板for_each进行遍历:" << endl;
for_each(cVec.begin(), cVec.end(), [](char val){cout << val << ' ';});
//for_each(cVec.begin(), cVec.end(), OutPut); // 排序
sort(cVec.begin(), cVec.end());
cout << endl << endl << "向量排序后:\n";
for(auto x : cVec){
OutPut(x);
}
// for_each(cVec.begin(), cVec.end(), OutPut); // algorithm内的函数模板 // map
cout << endl;
cout << endl;
cout << "map示例:" << endl;
map<int, int> imap;
//multimap<int, int> imap;
//unordered_map<int, int> imap;
//imap.insert(unordered_map<int, int>::value_type(100, 1000)); // 三种方式插入
imap.insert(make_pair(1, 10));
imap.insert(make_pair(4, 40));
imap.insert(make_pair(5, 50));
imap.insert(make_pair(9, 90));
imap.insert(map<int, int>::value_type(8, 800));
imap.insert(pair<int,int>(2,20)); // 如果需要更改值的话,用引用for(auto& it : imap)
for(auto it : imap)
{
cout << "Key:" << it.first << " --> Value:" << it.second << "\n";
} cout << endl;
system("pause");
return 0;
}

map-有序 multimap-可重复 unordered_map-无序的更多相关文章

  1. stl vector、红黑树、set、multiset、map、multimap、迭代器失效、哈希表(hash_table)、hashset、hashmap、unordered_map、list

    stl:即标准模板库,该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法 六大组件: 容器.迭代器.算法.仿函数.空间配置器.迭代适配器 迭代器:迭代器(iterator)是一种抽象的设计 ...

  2. STL(六)——map、multimap

    STL--map.multimap 文章目录 STL--map.multimap 关联容器与map的介绍 map与set的异同 map与multimap的异同 map类对象的构造 map添加元素 ma ...

  3. 4.3 map和multimap

    使用map multimap必须包含头文件map *:multimap 1)multimap定义 template<class Key,class Pred=less<Key>,cl ...

  4. 使用multimap创建重复键关联容器

    在“使用 <map> 库创建关联容器”一文中,我们讨论了标准库中的 map 关联容器.但那只是 map 容器的一部分.标准库还定义了一个 multimap 容器,它与 map 类似,所不同 ...

  5. STL的基本使用之关联容器:map和multiMap的基本使用

    STL的基本使用之关联容器:map和multiMap的基本使用 简介 map 和 multimap 内部也都是使用红黑树来实现,他们存储的是键值对,并且会自动将元素的key进行排序.两者不同在于map ...

  6. STL标准库-容器-map和multimap

    技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性 map与multimap为关联容器,结构如下 map底层实现依然是rb_tree 他的data可以改,但是key不能改,因此ma ...

  7. 【C++ STL】Map和Multimap

    1.结构 Map和multimap将key/value pair(键值/实值 队组)当作元素,进行管理.他们根据key的排序准则将元素排序.multimap允许重复元素,map不允许. 元素要求: k ...

  8. STL学习笔记— —容器map和multimap

    简单介绍 在头文件<map> 中定义 namespace std { template <typename Key, typename T, typename Compare = l ...

  9. C++标准库分析总结(六)——<Map、Multimap、Set、Multiset设计原则>

    关联容器我们可以看做是一个小型的数据库,它就是用key找value,编译器底层对于关联容器的实现有两种:红黑树(Red-Block tree)和哈希表(hash table,散列表). 一.红黑树简单 ...

  10. STL之Map和multimap容器

    1.Map和multimap容器 1)map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. 2)map中key值是唯一的.集合中的元素按一 ...

随机推荐

  1. Android数据存储引擎---SQLite数据库

    目标:是否可以在PC端桌面上使用SQLite数据库制作一个财务文件? 目录: 来源: 实践: 总结和比较: SQLite数据简介 是什么,内部结构是怎样的,数据库和表的关系是什么 有什么用 常用的操作 ...

  2. Lesnoe Ozero 2017. BSUIR Open 2017

    A. Tree Orientation 树形DP,$f[i][j][k]$表示$i$的子树中有$j$个汇点,$i$往父亲的树边方向为$k$的方案数. 转移则需要另一个DP:$g[i][j][k]$表示 ...

  3. jquery for循环判断是否重复

    //使用for循环 判断是否有重名 var len=$("li").length;//获取页面中所有li的数量 for(var i=0; i<len; i++){ oldna ...

  4. <c:forEach var="role" items="[entity.Role@d54d4d, entity.Role@1c61868, entity.Role@6c58db, entity.Role@13da8a5]"> list 集合数据转换异常

    <c:forEach var="role" items="[entity.Role@d54d4d, entity.Role@1c61868, entity.Role ...

  5. 模板设计在tomcat中的应用

    tomcat是一个常见的web容器,用户使用它可以很方便地管理servlet小程序,而servlet与tomcat的交互代码设计就用到了模板设计. 何谓模板设计,就是定义一个抽象父类,在该父类中组织子 ...

  6. robotframe中使用report,设置路径带有时间戳

    1.打开C:\Python27\Lib\site-packages\robotide\contrib\testrunner,找到testrunner.py.   修改代码块def _create_te ...

  7. Cassandra数据模型

    Ⅰ.数据模型 1.1 Column 一组包含Name/Value Pair的数据叫Row,其中每一组Name/Value Pair叫Column Column是Cassandra最基本的数据结构,它是 ...

  8. 前端开发-日常开发沉淀之git提交文件忽略

    .gitignore文件里添加需忽略的文件,或需要提交的文件 # Created by .ignore support plugin (hsz.mobi) ### VisualStudioCode t ...

  9. es6 中的 symbol

    symbol 的引入是为了解决对象中的属性名冲突的问题 使用symbol() 函数生成的变量值不与任何的变量值相等,  所有用改变量的值做属性名是不会冲突的 symbol 可以转化为字符串, 可以转化 ...

  10. 添加一个Button按钮

    #增加一个Button 1. 在layout下的xml中添加 <Button android:id="@+id/button1" android:layout_width=& ...