zoukankan      html  css  js  c++  java
  • C++关联容器

    1.简介

    关联容器支持高效的关键字查找和访问,两个主要的关联容器类型是map和set。
    map中的元素是一些关键字和值,关键字起索引作用
    set中只包含一个关键字。

    2.汇总

    有序容器在插入时,会自动插入到合适的位置,使整个集合有序






    3.分类使用

    1.有序容器

    set<int> a = {1,2,9};
    //插入元素
    a.insert({5,6});
    for(auto it = a.begin();it != a.end();it++)	cout << *it;//输出12569,插入时自动排序,
    
    //插入一个区间
    set<int b> = {4,5};
    auto first = b.begin();
    auto second = b.end();
    a.insert(first,second);  //将b的所有元素插入到a中
    
    //删除元素
    a.erase(3);  //删除关键字为3的元素,返回删除的个数
    a.erase(first,second);  //删除区间,返回指向second
    a.erase(iterator); //删除迭代器指向的元素
    
    map<string, int> b2 = { {"first",3}};  //注意里面还有一个大括号
    
    //插入元素
    b2.insert(make_pair("second",5));  //使用insert插入
    b2.insert({"second",5});
    b2.insert(map<string,int>::value_type("second",5));
    b2["second"] = 5;  //使用下标插入,如果有该关键字的话,会直接更改值,如果没有会插入
    b2.at("first") = 4; //更改值,如果没有关键字,会发生错误
    
    //删除元素
    b2.erase("second");  //删除关键字为second的元素
    auto pr = b2.begin();
    b2.erase(pr); //删除pr指向的元素
    

    map的遍历
    每一个元素可以看成是pair类型,第一个key用it->first访问,值用it->second来访问。同样可以采用下标来访问

    //multimap支持重复的关键字,故不能使用下标来进行访问和修改
    multimap<string, int> b2 = { {"first",3},{ "first",5 } };  
    b2.insert({ "second", 6 });
    for (auto it = b2.cbegin(); it != b2.cend(); it++)
    cout << it->first << "  " << it->second << endl;
    
    //查找元素
    auto num = b2.count("first");
    auto iter = b2.find("first");
    while (num)
    {
    	cout << iter->first << ":" << iter->second << endl;
    	iter++;
    	num--;
    }
    
    

    2.无序容器

    无序容器的操作基本和有序容器一致,多了一些特殊操作:

  • 相关阅读:
    phpajax高级篇
    一天学会ajax (php环境)
    php生成静态文件的方法
    MongoDB查询文档
    MongoDB删除文档
    MongoDB索引管理
    MongoDB插入文档
    MongoDB排序记录
    MongoDB 更新文档
    mongoDB 固定集合(capped collection)
  • 原文地址:https://www.cnblogs.com/penuel/p/13744191.html
Copyright © 2011-2022 走看看