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コンストラクターはstd::stringa をパラメーターとして受け取ります。std::vectorコピー コンストラクターと一緒に文字列を指定すると、次のように動作します。

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