【发布时间】:2013-05-13 18:50:18
【问题描述】:
代码如下:
typedef struct Triplet
{
double value;
int row;
int column;
};
class Matrix
{
public:
//Some methods
double specialMethod(/*params*/);
private:
std::vector<Triplet> elements;
int nRows;
int nColumns;
};
specialMethod 被调用后,Matrix.element 中的值已损坏。但是除了像这样迭代之外,他们什么也没做:
std::vector<Triplet>::iterator it;
std::vector<Pair> buff;
for (it = this->elements.begin(); it != this->elements.end(); ++it)
{
if (it->column = n)
{
Pair p;
p.key = it->row;
p.value = it->value;
buff.push_back(p);
}
}
不知道从哪里开始寻找错误。
【问题讨论】:
-
您可以从打开编译器警告开始并修复它指出的问题,这可能是问题的原因
-
在 Visual Studio 中,如果您将警告级别设置为 3 以上,编译器会在条件赋值时发出警告。下次开始的好方法。
-
kotlomoy & Jonathan,谢谢,下次会用到。