使用const指针或指针作为`std :: map`的键

时间:2015-02-06 20:00:17

标签: c++ linux

#include <map>

class ClassOne
{
   //...
};

int main() {
    std::map< ClassOne *, int >             mapA;
    std::map< const ClassOne *, int >       mapB;
    std::map< ClassOne *const, int >        mapC;
    std::map< const ClassOne * const, int > mapD;

    return 0;
}

问题&GT;我需要使用ClassOne的地址作为std::map的关键字。哪一个是最好的选择?

谢谢

1 个答案:

答案 0 :(得分:0)

这取决于你实际想做什么 - 但是,你很少想要更改密钥,所以ClassOne * const如果你不打算改变指针;如果您不想更改指针指向的对象const ClassOne * const