【发布时间】:2012-11-27 07:10:06
【问题描述】:
我希望创建一个数组(或向量?)来表示一些文件。
基本上,我将拥有可变数量的输入文件。每个文件的每一行都可以被视为一个自定义对象(我称它们为“符号”)。每个文件的行数不定。
所以我想进行这种表示:
数组[x][y]
x 指的是文件,y 指的是该文件中的行。
我在 stackoverflow 上看到了一些主题,这些主题提出了一些类似的建议
symbol **snapShots = new symbol*[usableFiles];
for(int i = 0; i < usableFiles; ++i) {
snapShots[i] = new symbol[longestFile];
}
这在构建时给了我一个奇怪的错误消息:
Undefined symbols for architecture x86_64:
"symbol::symbol()", referenced from:
_main in MarketDataGenerator.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Info: Parallel threads used: 3
任何想法我会怎么做?还是在读回以进行进一步处理之前将信息暂时存储在文件中更好?
【问题讨论】:
-
该错误可能意味着您尚未定义默认构造函数,或者未链接到定义。无论如何,使用
std::vector,而不是双指针。 -
会包含未定义的析构函数吗?我很确定我的构造函数没问题。
-
它抱怨错误中的构造函数。它需要一个链接器可以找到的主体。
-
D'oh - 是的,缺少默认构造函数。
标签: c++ arrays vector multidimensional-array dynamic-allocation