0
我有以下代碼:舊矢量被清除了嗎?如果是,如何以及何時?
void foo()
{
vector<double> v(100,1); // line 1
// some code
v = vector<double>(200,2); // line 2
// some code
}
什麼第二行之後發生的大小爲100的載體?它被自己清除了嗎?如果答案是肯定的,那麼何時何地被清除?順便說一句,有沒有其他「簡單而乾淨」的方法來改變向量,如第2行?我不想要像
v.resize(200);
for (int i=0; i<200; i++) v[i] = 2;
另一個問題。如果該載體是一個類的成員:
class A{
public:
vector<double> data;
A(int size, double value)
{
data = vector<double>(size,value);
}
};
A object(10,1);
// some code
object = A(20,2); // ** What happened to the old object.data? **
// some code
我在哪裏可以找到操作矢量的MSDN中的描述=? – 8888q8888 2010-04-15 03:33:27
MSDN沒有定義語言。 [本網站](http://www.cplusplus.com/reference/)都沒有,但它應該有點更豐富。 [對於矢量運算符=](http://www.cplusplus.com/reference/stl/vector/operator=/)。 – GManNickG 2010-04-15 03:37:42
謝謝!我知道了!對於重複的問題抱歉。 – 8888q8888 2010-04-15 03:44:42