【发布时间】:2013-03-16 21:52:17
【问题描述】:
我需要调整一个数组的大小并在那里复制值...所以我知道,我需要一个动态数组,但我不能使用vector 并且必须使用静态数组..我写了这样的东西:
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; 我明白了
...我是 C++ 新手,作为一个 javaguy,我真的很困惑 :-S 感谢您的任何建议,如何解决这个问题..
【问题讨论】:
-
您的问题自相矛盾。标题中有“动态数组”,但问题是“必须使用静态数组”。
-
数组不可赋值。所以如果你有一个数组
Type arr[N];,每次尝试赋值arr = whatever;都会导致编译错误。 -
每当我在同一个句子中看到(或听到)“动态”和“数组”这两个词时,我都会想到
std::vector。 -
@EricUrban 我是这么写的,因为每次有人询问动态数组时,答案都是“使用向量”......我只是想说,我需要创建另一个数组,它比前一个大...然后将此数组的引用添加到第一个O_o
-
@Dworza 静态和动态数组本质上是不同的东西。
标签: c++