void setVector(vector<string> aStringVec)
{
for(std::vector<string>:: iterator s = str1.vec.begin(); s != str1.vec.end(); ++s)
{
classVector.pushback(*s);
}
}
如果我classVector = aStringVec,classVector將指向指針aStringVec的第一元素,由於矢量被認爲是陣列,並且可能會消失,因爲這是在堆棧上,對?設置器在C++類矢量
那麼這是爲類矢量編寫setter的正確方法,我可以在任何地方調用它嗎?
向量不是數組,因此'aStringVec'不是一個指針。你希望你的函數簽名看起來像這樣:'void setVector(vector&aStringVec)'。然後它會按照你想要的方式工作。 –
好吧,我不必這樣做,但是它的效率更高。 +1也許你是對的,但我不認爲我們可以直接將一個向量X分配給一個類向量,如果我錯了,請糾正我。 – OnTheFly
@VioletGiraffe做出這個答案。 –