返回 std::map with get 方法

return std::map with a getter method

本文关键字:get 方法 with map std 返回      更新时间:2023-10-16

正如标题所示,我正在尝试抓住一个 std::map 容器并返回它。

我收到以下错误:在没有参数列表的情况下无效使用模板名称"std::map">

现在我很确定原因与模板有关,但根本没有找到描述我具体情况的示例。

我的程序相当简单,因为我是休假的新手。它由以下文件组成:

  • 主.cpp
  • Movie_Archive.马力
  • Movie_Archive.cpp
  • 电影.hpp
  • 电影.cpp
  • 助手.hpp
  • 助手.cpp

我认为没有人希望我粘贴所有代码,所以我粘贴了我认为对我的问题至关重要的部分。代码如下:

Movie_Archive.hpp

class MovieArchive {
private:
std::map <std::string, Movie> movie_archive;
public:
std::map getMovieArchive();
};

Movie_Archive.cpp

std::map MovieArchive::getMovieArchive() {
return movie_archive;
}

主.cpp

TheMovieArchive.controlArchiveStatus(TheMovieArchive.getMovieArchive(), TheMovieArchive.getTitle());

检查电影标题是否已输入

非常感谢您看一看。我希望有人能找到解决方案。

亲切的问候//阿勒

你可能的意思

class MovieArchive {
private:
std::map <std::string, Movie> movie_archive;
public:
std::map<std::string, Movie> getMovieArchive();
};

即,您还必须在 getter 的返回类型中提供模板参数。

顺便说一句:你可能想写

class MovieArchive {
private:
std::map <std::string, Movie> movie_archive;
public:
const std::map<std::string, Movie> & getMovieArchive();
};

即返回一个常量引用而不是内部数据结构的副本。