Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 写入文件时向量下标超出范围_C++_Vector - Fatal编程技术网

C++ 写入文件时向量下标超出范围

C++ 写入文件时向量下标超出范围,c++,vector,C++,Vector,我想把一个向量写到一个文件中,它表示一个函数的结果,该函数以“double Golf_dl”的步长递增j。 向量本身必须包含“int Golf_NL”元素。(Golf_dl是海啸级私人会员) 问题是我得到了一个所有值都等于0.5的常量向量,这是垃圾。 有人能看出来是怎么回事吗 代码: void T_Tsunami::Toestand(内部nl) { 结构pb { std::vector&v; pb(标准::向量和向量) :v_uv(v){}; pb和操作员+(双i) { v.推回(i); 归还*

我想把一个向量写到一个文件中,它表示一个函数的结果,该函数以“double Golf_dl”的步长递增j。 向量本身必须包含“int Golf_NL”元素。(Golf_dl是海啸级私人会员) 问题是我得到了一个所有值都等于0.5的常量向量,这是垃圾。 有人能看出来是怎么回事吗

代码:

void T_Tsunami::Toestand(内部nl)
{
结构pb
{
std::vector&v;
pb(标准::向量和向量)
:v_uv(v){};
pb和操作员+(双i)
{
v.推回(i);
归还*这个;
}
};
for(双i=0;i你的问题就在这里:

for( double i = 0; i < nl; i++ )
{   
    double j=0; 
    double y = 0.25*(1-tanh(double(j-75)/5));
    j+=Golf_dl;
    pb(T_1)+y; 
}
for(双i=0;i

考虑到循环变量
i
未在循环中的任何位置使用。此外,
j
y
不会在循环之间保留它们的值(它们不是
静态的
)。

T\u 1也是私有成员(向量)欢迎使用Stack Overflow!要求人们发现代码中的错误并不是特别有效。您应该使用调试器(或添加打印语句)来隔离问题,方法是跟踪程序的进度,并将其与预期发生的情况进行比较。一旦这两种情况出现分歧,您就发现了问题。(然后,如果需要,您应该构造一个。)
有人能看出哪里出了问题吗?
那么你想让我们在脑子里运行计算机吗?你用过调试器吗?在过去的3个小时里,我一直在试图找出它出了什么问题。@user3600130-你是如何试图找出这个问题的?仅仅通过查看你的代码?嗯,这不是找到bug的最有效的方法。请离开rn使用编译器附带的调试器。这是SO上的任何人都会发现您的错误的方式。如果你这样做了,而不是3个小时,那么你可能只需要几分钟就可以确定问题所在,如果不是彻底解决问题的话。我猜他的意思是
double j=0;
出现在循环之前,你把它泄露了!:)我试着引导@user3600130自己去发现问题。明白了,我改变了。写函数也导致了向量太短。谢谢你的帮助,@PaulMcKenzie我现在就知道如何调试了,一直认为这和编译是一样的。
for( double i = 0; i < nl; i++ )
{   
    double j=0; 
    double y = 0.25*(1-tanh(double(j-75)/5));
    j+=Golf_dl;
    pb(T_1)+y; 
}