关联容器map(红黑树,key/value)

字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j"

//线性序列,里面只存了一个元素,map存的是键值对

vector  [2,3,4,5]   操作,插入删除  查找效率

list  [1->2->3->4->5]  操作,插入删除效率高, 查找低

双端队列 [2,3,4,9,11,22,33] 操作,头尾插入删除效率高,查找高

串 s = “a1 a2 a3 a4 a5”

#include   <iostream>
#include   <ctime>
#include   <map>
#include<algorithm>

using namespace std;
typedef struct itemstruct{
   int  a;
   char b[20];
}itemS;

itemS s[4]={{98,"what"},
            {88,   "hello"},
            {98,"world"},
            {77,   "c++"}
            };

  int main()
  {
            map<string,itemS>  mymap;
            string   str[4]   =   {"1st","2nd","3rd","4th"};
            for(int   i   =   0;   i<4;   i++)
            {    //first是Key, second是value;
                 mymap.insert(make_pair(str[i], s[i]));
            }
            map<string,itemS>::iterator   it;

            for(it = mymap.begin();  it!=mymap.end(); it++)
            {   //first是Key, second是value;
                cout<<it->first<<"   "<<it->second.a<<"   "<<it->second.b<<endl;
            }

            map<string,itemS>::iterator iter;
            iter = mymap.find("4th");
            cout << iter->second.b;
            /*查找map中是否包含某个关键字条目用find()方法,
            返回数据所在位置的迭代器
            传入的参数是要查找的key*/
          return   0;
  }

时间: 2024-11-06 09:57:23

关联容器map(红黑树,key/value)的相关文章

关联容器set的用法(关联容器,红黑树,)

set和multiset会根据特定的排序准则自动将元素排序,set中元素不允许重复,multiset可以重复.// 2017/7/23号 好像set容器里面只能装一个元素 #include<iostream> #include<set> using namespace std; //set插入元素操作 int main() { //定义一个int型集合对象s,当前没有任何元素.由www.169it.com搜集整理 set<int> s; s.insert(8); //第

C++关联容器&lt;map&gt;简单总结

C++关联容器<map>简单总结 map提供大小可变的关联容器,基于关联键值高效检索元素值.当你处理键值对的数据是,都可以考虑使用map关联容器. 特点: 大小可变的关联容器,基于关联键值高效检索元素值. 可逆,因为它提供双向迭代器来访问其元素. 有序,因为它的元素根据指定的比较函数按键值排序. 唯一. 因为它的每个元素必须具有唯一键. 关联容器对,因为它的元素数据值与其键值不同. 模板类,因为它提供的功能是一般性的功能,与元素或键类型无关. 用于元素和键的数据类型作为类模板以及比较函数和分配

STL 笔记(二) 关联容器 map、set、multimap 和 multimap

STL 关联容器简单介绍 关联容器即 key-value 键值对容器,依靠 key 来存储和读取元素. 在 STL 中,有四种关联容器,各自是: map 键值对 key-value 存储,key 不可反复,即一个 key 仅仅能相应一个 value, 相应头文件<map> multimap 键值对 key-value 存储,key 能够反复,即一个 key 能够相应多个 value, 相应头文件<map> set 仅仅有 key, key 不可反复,相应头文件<set>

STL 笔记(二): 关联容器 map、set、multimap 和 multimap

STL 关联容器简介 关联容器即 key-value 键值对容器,依靠 key 来存储和读取元素.在 STL 中,有四种关联容器,分别是: map 键值对 key-value 存储,key 不可重复,即一个 key 只能对应一个 value, 对应头文件<map> multimap 键值对 key-value 存储,key 可以重复,即一个 key 可以对应多个 value, 对应头文件<map> set 只有 key, key 不可重复,对应头文件<set> mult

关联容器——map、set

map类型通常被称为关联数组,与正常数组类似,不同之处在于其下标不必是整数.我们通过一个关键字而不是位置来查找值(键值对). 与之相对,set就是关键字的简单集合.当只是想知道一个值是否存在时,set是最有用的. 类似顺序容器,关联容器也是模板,为了定义一个map,我们必须指定关键字和值得类型.例:map<string,int>test;一个test的空map,关键字是string.值是int的.set<string> e={"hello"};设置关键字集合,类

关联容器map的使用

map容器中的元素是一些关键字-值(key-value)对.map全称为有序的关键字不可重复的map,可以称之为关联数组,map通过关键字而非位置来查找值. 出了map外,还有允许关键字重复的multimap.无序的(由哈希函数组织的)关键字不可重复出现的unordered_map和无序的关键字可重复出现的unordered_multimap. 1 map的定义和初始化 在定义和初始化上,map和顺序容器vector并没有很大区别,甚至大多数初始化方式是一样的. 2 赋值 map的赋值可以有同类

关联容器map, multimap

map/multimap里放着的都是pair模板类的对象,且按first从小到大排序. pair 模板: template <class _T1, class _T2> struct pair { typedef _T1 first_type; typedef _T2 second_type; _T1 first; _T2 second; pair():first(),second(){}; pair(const _T1 &__a, const _T2 & __b):first

红黑树容器实现(带迭代器)

上一篇文章是纯粹地实现了红黑树,但是在STL中,红黑树容器是需要迭代器实现的.故将上一篇文章改进后实现红黑树容器. 本人实现的红黑树容器是底层红黑树结构是依据算法导论中设计的包含普通节点和空节点.不同于STL中的红黑树,其迭代器故也 有点不一样 //my_rb_tree.h #ifndef MY_RB_TREE_H_INCLUDED #define MY_RB_TREE_H_INCLUDED #include"iterator_rb_tree.h" #include"simp

CH11 关联容器

关联容器与顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的,而顺序容器是按它们在容器中的位置来顺序保存和访问的.两个主要的关联容器:map和set map 中的元素的是一个key-value对:关键字是用来索引值关联的数据.set:每个关键字值包含一个关键字. 关联容器类型: map 保存key-value  map<key,value> set 保存关键字key set<key> multimap 关键字可以重复出现的map multiset 关键字可以重复出现的