以下是我的代码片段
int lengthoftable;
vector<int> hashtable(lengthoftable);
int main(void) {
cin >> lengthoftable;
}
我要做的是声明一个全局变量向量,根据要在主体中采用的可变大小进行初始化。
问题:自cin&gt;&gt;以来它是否有效是否在哈希表的声明之下?如果它不起作用,有没有办法解决这个问题?我希望在变量上初始化一个全局变量。
答案 0 :(得分:3)
为什么要真的想要做以下事情?
vector<int> hashtable(lengthoftable);
如何以与
不同的方式做到这一点vector<int> hashtable;
int main() {
cin >> lengthoftable;
hashtable.reserve( lengthoftable );
}
事实上,通过获取用户的输入来跟踪矢量的长度也是一个坏主意。向量是一个可变大小的数组,其中内存管理内存,动态调整大小和容量,没有理由在外部跟踪它的长度。它甚至可能导致实际长度与lengthoftable
不同的不一致和错误。
答案 1 :(得分:2)
vector<int> hashtable;
int main(void) {
int lengthoftable;
cin >> lengthoftable;
hashtable.resize(lengthoftable);
}