C++ 通过返回指向地图的指针来访问地图c++;

C++ 通过返回指向地图的指针来访问地图c++;,c++,class,pointers,map,C++,Class,Pointers,Map,我试图在一个类中创建一个函数,该类返回一个指向映射的常量指针。然后在另一个类中,我可以有一个函数,它可以接受常量指针,声明迭代器,并将映射的内容复制到向量中。将类映射到向量类是本练习的一个要求。我以前从未对映射进行过PTR,而且我没有编译器喜欢的语法。以下是我在Map中的函数声明: class WordCount { public: WordCount(); ~WordCount(); void word_insert(std::strin

我试图在一个类中创建一个函数,该类返回一个指向映射的常量指针。然后在另一个类中,我可以有一个函数,它可以接受常量指针,声明迭代器,并将映射的内容复制到向量中。将类映射到向量类是本练习的一个要求。我以前从未对映射进行过PTR,而且我没有编译器喜欢的语法。以下是我在Map中的函数声明:

class WordCount
{
    public:
        WordCount();
        ~WordCount();
        void word_insert(std::string clean_word);
        void print_all();
        const std::map<std::string, int> * get_map();

    private:
        std::map<std::string, int> m_word_counts;
        std::map<std::string, int>::iterator m_it;
        std::pair<std::map<std::string, int>::iterator, bool> m_ret; 
};
类字数
{
公众:
字数();
~WordCount();
空字插入(标准::字符串清除字);
无效打印全部();
const std::map*get_map();
私人:
标准::映射m_单词数;
std::map::迭代器m_it;
标准:双金属网;
};
但是,当我试图定义这样的函数(或我尝试过的许多变体)时,我会得到一个转换错误。以下哪些内容需要更改

const map<string, int > * WordCount::get_map()
{
    const map<string, int > *ptr = m_word_counts;
    return ptr;
}
const map*WordCount::get_map()
{
常量映射*ptr=m_单词计数;
返回ptr;
}
--

const map*ptr=&m\u单词计数;
常量映射*ptr=&m\u单词计数;

我只会返回一个引用

const map<string, int > & WordCount::get_map()
{
    const map<string, int > &ptr = m_word_counts;
    return ptr;
}
const map&WordCount::get_map()
{
const map&ptr=m_单词数;
返回ptr;
}

我只会返回一个引用

const map<string, int > & WordCount::get_map()
{
    const map<string, int > &ptr = m_word_counts;
    return ptr;
}
const map&WordCount::get_map()
{
const map&ptr=m_单词数;
返回ptr;
}

为什么是指针?为什么不只是返回一个引用?为什么是指针?为什么不返回一个引用?@ USE168498:花时间阅读一本关于C++的好教程或入门书。引用和指针是语言中的基本组成部分。@ USE168498:花时间阅读一本关于C++的好教程或入门书。引用和指针是该语言的基本构造块。