4

如何 std::vector<std::ifstream>从现有std::vector<std::string>的要打开的文件的名称进行初始化?

没有初始化vector,我可以使用

std::vector<std::string> input_file_names;
// Populate the vector with names of files that needs to open.
// ...
std::vector<std::ifstream> input_files_;
for (auto const & input_file_name : input_file_names) {
  input_files_.emplace_back(input_file_name);
}
4

1 回答 1

14

在 c++11 中,std::ifstream构造函数将 astd::string作为参数。std::vector将其与复制构造函数一起字符串,这应该可以工作:

std::vector<std::string> filenames;
std::vector<std::ifstream> files(filenames.begin(), filenames.end());
于 2013-01-29T07:23:49.637 回答