c++ ifstream的向量

idfiyjo8  于 2023-03-14  发布在  其他
关注(0)|答案(3)|浏览(132)

如何创建和操作ifstreams向量?
就像这样,但是这个不起作用:

vector<ifstream> Files(10, ifstream());
Files[0].open("File");
ojsjcaue

ojsjcaue1#

不能将ifstream存储在std::vector中,因为不能创建它们的副本。
你可以通过存储指针来完成类似的事情,在这种情况下,我建议你使用某种指针容器来确保那些ifstream被删除。

omhiaaxx

omhiaaxx2#

我能想到的最接近的是vector<shared_ptr<ifstream> >-你不能把ifstream放在向量中,因为它们是不可复制构造的。

3npbholx

3npbholx3#

从C++11开始,您可以使用emplace_back

vector<ifstream> Files;
Files.emplace_back("File1");
// ...

// Use the files here...

// Close them afterwards:
for (auto &file : Files) file.close();

相关问题