c++ - 如何通过key从map中获取值

标签 c++ c++11

如何通过键从 map 中获取值(value)?我有一个整数 vector A,还有一张 map 。我想打印 M[1],但我不明白我该怎么做,因为我有一个错误:

error: invalid operands to binary expression ('ostream' (aka 'basic_ostream<char>') and 'mapped_type' (aka 'std::__1::pair<int, int>'))
    cout << M[1];
    ~~~~ ^  ~~~~

我的代码:

int main() {
    vector<int> A;
    map<int, pair<int,int> > M;

    FOR(i,1,maxN) {
        pair<int,int> p;

        p.first = 1;
        p.second = 2;

        M[i] = p;
    }

    FOR(i,0,t) {
        int x = A[i];
        cout << M[x] << endl;
    }

    return 0;
}

最佳答案

映射的值类型是 std::pair。您需要单独打印该对中的 2 个值:

cout<< M[x].first << "," << M[x].second << endl;

关于c++ - 如何通过key从map中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32381424/

相关文章:

c++ - 使用 GMock 验证析构函数调用

c++ - Cuda 9 RC + VS2017 + CMake 不工作

c++ - 提神气从子规则赋值

c++ - 即使边界键不存在,我也可以迭代 std::map 键范围吗?

c++ - Floyd Steinberg 抖动灰色(pgm ascii)到黑白(pbm ascii)

c++ - 将指针设置在其内存范围之外

c++ - .data() 等效于 std::queue

c++ - 交换类型列表中的两种类型

c++11 - std::string::assign与std::string::operator =

C++11构造函数继承和无参数构造函数