For循环使程序c++不断崩溃
For loop keeps crashing program c++
我的较长程序中的这段特定代码不断崩溃。它编译得很好,但windows会终止它。
out_stream_names.open("names.dat");
for(int i = a.size(); i>0 ; i=i-1)
{
out_stream_names << a[i] << endl;
}
out_stream_names.close();
我想弄清楚为什么它一直在崩溃。我不是要求复制代码。谢谢
信息很少。但首先出现的是a.size()
尝试:
out_stream_names.open("names.dat");
for(int i = a.size()-1; i>=0 ; i=i-1)
{
out_stream_names << a[i] << endl;
}
out_stream_names.close();
由于您只想在偶数索引中输出,在遍历的情况下,偶数索引是奇数索引,因此使用:
if(i&1) out_stream_names << a[i] << endl;
我建议使用以下顺序的东西来避免这类问题:
std::copy(a.rbegin(), a.rend(),
std::ostream_iterator<a::value_type>(out_stream_names, "n"));
另外,在这种情况下,您可能还会获得一些性能提升(将endl
替换为n
,避免在您编写的每个名称之间刷新流(。
[注意,a::value_type
不会按原样编译--您需要指定实际类型]。
out_stream_names.open("names.dat");
for(int i = a.size() - 1; i >= 0; --i)
{
out_stream_names << a[i] << endl;
}
out_stream_names.close();
试试看!
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 使用调试/崩溃报告将应用程序部署到客户端
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- ExtractIconEx:可以工作,但偶尔会崩溃
- 为什么引用传递会导致此崩溃(C++)
- 试图创建流或fopen时程序崩溃
- 类对象数组的问题会导致崩溃
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 为什么要增加导致崩溃的指针
- 在虚幻引擎中删除NXOpen对象时崩溃
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- Visual Studio在尝试读取resource.txt文件时崩溃
- 将方法转换为调用该方法的成员函子对象会导致崩溃