如何初始化
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);
}
最佳答案
在 c++11 中,std::ifstream
构造函数将 std::string
作为参数。将其与 std::vector
复制构造函数一起字符串化,这应该可以工作:
std::vector<std::string> filenames;
std::vector<std::ifstream> files(filenames.begin(), filenames.end());
关于c++ - 如何使用 vector 和对象构造函数初始化对象 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14577497/