我對C++ vector
感到困惑並尋求幫助。 我聲明一個類CBoundaryPoint
:矢量值與原始值不同
class CBoundaryPoint:
{
public:
double m_param;
int m_index;
}
然後我定義了一個vector
:
vector<CBoundaryPoint> vBoundPoints;
CBoundaryPoint bp;
double param;
// other codes
bp.m_param = param;
vBoundPoints.push_back(bp);
我很驚訝於vBoundPoints
每個元素的m_param
值是從給定的值PARAM完全不同。我只是不知道爲什麼。
例如:
param = 0.3356;
bp.m_param = param; // so bp.param equals to 0.3356;
vBoundPoints.push_back(bp); // while (*(vBoundPoints.end()-1)).m_param = -6.22774385622041925e+066; same case to other elements
到底發生了什麼,爲什麼?我正在使用VS2010。
您可以加入一些代碼來告訴你如何檢查值? – juanchopanza 2012-08-02 14:25:38
是的,你想可能使用.rbegin()或更好.back()而不是.end() - 1 – vmpstr 2012-08-02 14:28:30
請給出一個簡短的,完整的代碼示例來演示問題。 – 2012-08-02 14:28:48