C/C++教程

C++ map的初步学习

本文主要是介绍C++ map的初步学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

C++ map的使用

  • 1. 序言
  • 2. 初始化
  • 3. 修改
    • 3.1 插入 insert()
    • 3.2 插入 insert_or_assign
    • 3.3 删除 erase
  • 4. 查询
    • 4.1 遍历
    • 4.2 是否存在 int count(const key& key)
    • 4.3 查找 iterator find( const Key& key );

1. 序言

资料来源: c++参考手册.

2. 初始化

使用前要引入包含map的头文件

#include <map>  //注意,STL头文件没有扩展名.h

通常使用以下代码进行map的初始化

map<int,int> map;

3. 修改

3.1 插入 insert()

1.插入一个元素,注意要包含{key, value}

map<int, int> map;
map.insert({2,2});

注: 插入时如存在该key值,则忽略此次插入

3.2 插入 insert_or_assign

插入时如存在key值则插入默认值

3.3 删除 erase

  1. void erase( iterator pos );
map<int,int> map;
map.insert({1,2});
map.erase(map.find(1));  // 删除map中的{1,2}

4. 查询

4.1 遍历

    map<int,int> m;
    map<int,int>::iterator iter;
    iter = m.begin();
    while(iter != m.end()){
        cout << iter->first << "-" << iter->second << endl;
        iter++;
    }
    for (iter = m.begin();iter != m.end(); iter++){
        cout << iter->first << "-" << iter->second << endl;
    }
    for(auto &it : m){
        cout << it.first << "-" << it.second <<endl;
    }

4.2 是否存在 int count(const key& key)

查找map中存在key值元素的个数,因map中不存在重复元素,故如存在,返回1,不存在返回 0

map<int,int> map;
map.insert({2,2});
int a = map.count(2); // a = 1;
int b = map.count(3); // b = 0;

## 4.3

4.3 查找 iterator find( const Key& key );

返回所查询的key值元素的所在的迭代器
std::map<int,char> example = {{1,‘a’},{2,‘b’}};

   auto search = example.find(2);
    if (search != example.end()) {
        std::cout << "Found " << search->first << " " << search->second << '\n';
    } else {
        std::cout << "Not found\n";
    }
    // 输出 Found 2 b
这篇关于C++ map的初步学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!