小编BFa*_*amz的帖子

C++:无法使用“=”运算符更改 std::pair 的值

我正在尝试更新 an 的值std::pair,但这会导致编译器错误。如何解决这个问题?

#include <unordered_map>
#include <utility>
#include <string>
#include <iostream>

int main(int argc, char *argv[])
{
    std::unordered_map<int, std::pair<std::string, std::string>> test1;
    test1.insert(std::make_pair(1, std::make_pair("good1", "bad1")));
    test1.insert(std::make_pair(2, std::make_pair("good2", "bad2")));
    test1.insert(std::make_pair(3, std::make_pair("good3", "bad3")));
    test1.insert(std::make_pair(4, std::make_pair("good4", "bad4")));

    std::unordered_map<int, std::pair<std::string, std::string>>::const_iterator test2
        = test1.find(1);

    if (test2 == test1.end())
    {
        std::cout << "Could not find test2 in test1\n";
        return 0;
    }

    std::cout << "First item is: " << test2->second.first << "...second item is: " << test2->second.second << "\n";

    /* This line is throwing an …
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
176
查看次数

标签 统计

c++ ×1