我真的需要一些帮助...我详细说明了我的问题,我需要一个特定类型的数组,但在使用 for 结构从其他数组中检索值之前我不知道它的长度。事实上,我不想花时间再次通过几个循环,我想知道最好的方法。我应该使用堆栈和计数器,并在填充它之后实例化并填充数组吗?
RelAttr *tab;
//need to initialize it but how
/*several for loops retrieving values*/
tab[i] = value;
/*end for loops*/
显然这段代码是不完整的,但事情就是这样完成的。而且我知道我不能在没有指定数组长度的情况下做矫揉造作...
谢谢你的帮助
最佳答案
只需使用 std::vector
。
std::vector<RelAttr> vec;
vec.push_back(a);
vec.push_back(b);
...
它透明地管理自己的增长。每次增长时,都会复制所有项目,但摊销成本为 O(1)。
存储也保证是连续的,所以如果你真的需要一个原始的 C 风格数组,那么你可以简单地这样做:
const RelAttr *p = &vec[0];
但是,只有当您有需要满足的旧版 C API 时,您才真正应该这样做。
关于c++ - 计算存储在数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9149131/