C++容器之映射map

8、小作业:
定义一个 map<int, char> 类型的对象:
依次存入以下内容:
10010->'m'
10011->'f'
10012->'f'
10013->'m'
10014->'f'
10015->'m'

之后,使用 for 循环删除map中的value值为 'f' 的元素,并将结果输出出来!

#include <iostream>
#include <map>
using namespace std;
int main()
{
    map<int, char> m_int_char;
    m_int_char.insert(m_int_char.begin(), {10010,'m'});
    m_int_char.insert({ 10011,'f' });
    m_int_char.insert(m_int_char.end(), { 10012,'f' });
    m_int_char.insert(m_int_char.end(), { 10013,'m' });
    m_int_char.insert(m_int_char.end(), { 10014,'f' });
    m_int_char.insert(m_int_char.end(), { 10015,'m' });
    for (int i = 10016; i < 10050; i++)
    {
        if (i > 10040)
        {
            m_int_char.insert(m_int_char.end(), { i,'m' });
        }
        else
        {
            m_int_char.insert(m_int_char.end(), { i,'f' });
        }
    }
    map<int, char>::iterator itera;
    for (itera = m_int_char.begin(); itera != m_int_char.end(); itera++)
    {
        int key = itera->first;
        char value = itera->second;
        if (value == 'f')
        {
            itera = m_int_char.erase(itera);
            itera--;
        }
        else
        {
            cout << key <<"->"<< value;
            cout << endl;
        }
    }
    return 0;
}

 

posted on 2021-01-15 19:54  SakuraQAQ  阅读(86)  评论(0)    收藏  举报

导航