如何将单个现有对插入到地图中

时间:2016-10-12 17:27:54

标签: c++ insert stdmap std-pair

我已经定义了pair,我希望将insert改为map。这样做的正确方法是什么?

我尝试了两个。一个有效。另一个(我的意思是使用,因为它更紧凑和清晰)不会。没有运行时错误,但它根本不起作用(我使用insert的返回值进行了检查,其第二个成员是False)。 我想修复第二种形式的方法很简单,但我找不到它。

这就是我所拥有的:

using namespace std;
typedef pair<string, char> pair_t;
typedef map<pair_t::first_type, pair_t::second_type> map_t;
typedef pair<map_t::iterator,bool> retval_insert_t;

int main(void) {
    pair_t p2;
    p2 = make_pair("Fer", 'C');

    map_t grade_list;
    grade_list[ "Jorge" ] = 'A';
    grade_list.insert(make_pair("Alba", 'D'));
    grade_list.insert(pair_t("Susi", 'C'));
    grade_list.insert(make_pair(p2.first, p2.second));  //  This works
    grade_list.insert(p2);                              //  This does not work
    return 0;
}

0 个答案:

没有答案