c++ - 在 C++ 中将 fstreams 加载到 std::vector

标签 c++ visual-studio-2010 vector fstream

这是一个既简单又复杂的问题。

编译:

int Test;
vector<int> TEST;
TEST.push_back(Test);
cout << TEST.size();

这不编译:

fstream Test;
vector<fstream> TEST;
TEST.push_back(Test);
cout << TEST.size();

有什么特别的原因吗? 有没有办法让我获得 fstreams 的动态列表?

错误信息:

1>------ Build started: Project: vector_test, Configuration: Debug Win32 ------
1>  vector_test.cpp
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\fstream(1347): error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\ios(176) : see declaration of 'std::basic_ios<_Elem,_Traits>::basic_ios'
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          This diagnostic occurred in the compiler generated function 'std::basic_fstream<_Elem,_Traits>::basic_fstream(const std::basic_fstream<_Elem,_Traits> &)'
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

最佳答案

对象 fstream不可复制。

如果需要记录fstream s 在 vector你可以声明一个 std::vector<std::fstream*>并推回对象的地址。请记住,如果保存指针,则必须确保在访问它时该对象仍然存在。

关于c++ - 在 C++ 中将 fstreams 加载到 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889243/

相关文章:

c# - 将 C++(处理 Corona)函数转换为 C#

c++ - 创建包装器类而不是从头开始设计是不是 C++ 中糟糕的软件架构?

c++ - 初始化静态成员导致 `Missing type specifier - int assumed.`

visual-studio-2010 - Visual Studio 2010 忘记了自定义编辑器

c++ - 将 vector 传递给函数 c++

map - 根据clojure中最长的seq映射向量的惯用方法是什么?

C++: std::move with rvalue reference 不 move 内容

iphone - 从 C++ 验证 iphone 收据

visual-studio-2010 - Web 部署 : Exclude directories depending on Project Configuration name

c++ - shrink_to_fit 是将容量 a `std::vector` 减小到其大小的正确方法吗?