我需要調整數組的大小並將值複製到那裏...所以我知道,我需要一個動態數組,但我不能使用vector
並且必須使用靜態數組..我寫的是這樣的:C++動態數組 - 通過複製兩個數組
string names1[0];
bool foo(const char * inFile1) {
int size = 0;
ifstream myfile(inFile1);
if (myfile.is_open()) {
// iterate through lines
while (getline(myfile, line)) {
string tmp[++size];
for (int i=0; i!=size;i++)
tmp[i]=names1[i];
names1=tmp;
names1[size]=line;
}
}
}
不過上線names1=tmp;
我得到
main.cpp:42:20: error: incompatible types in assignment of ‘std::string [(((unsigned int)(((int)(++ size)) + -0x000000001)) + 1)]’ to ‘std::string [0]’
...我是新的C++作爲一個javaguy,我真的很困惑:-S謝謝任何建議,如何解決這個問題..
你的問題自相矛盾。標題中有'動態數組',但問題說你'必須使用靜態數組'。 – 2013-03-16 21:53:08
數組不可分配。所以,如果你有一個數組''arr [N];'每次嘗試賦值'arr = whatever;'都會導致編譯錯誤。 – 2013-03-16 22:00:49
每當我在同一個句子中看到(或聽到)「動態」和「數組」這個詞,我想'std :: vector'。 – 2013-03-16 22:04:00