如何在C ++中创建具有动态尺寸大小的数组?

时间:2012-12-09 20:13:06

标签: c++ arrays vector multidimensional-array dynamic-allocation

我想创建一个数组(或向量?)来表示一些文件。

基本上,我将有一个可变数量的输入文件。每个文件的每一行都可以被视为一个自定义对象(我将它们称为'符号')。每个文件中都有可变数量的行。

所以我想继续进行这种表述:

阵列[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

我有什么想法可以解决这个问题?或者我会在读回来进行进一步处理之前将信息暂时存储在文件中?

1 个答案:

答案 0 :(得分:4)

您是否考虑过使用std::vector<symbol>std::vector<std::vector<symbol> >?您的链接器试图告诉您的是,您已为类symbol声明了默认构造函数但未定义它(至少不在您链接的文件中)。