我正在尝试将队列的大小存储在 C++ 中的 int 中。我对此很陌生,但我不知道我可能做错了什么。我收到此错误消息:
“错误:在'free_men'中请求成员'size',它是非类类型'int'”
这是代码:我初始化了队列,并且只是用 n 个数字填充它。
queue<int> free_men;
for(int i = 0; i < n; ++i) {
free_men.push(i + 1);
}
int free_men = free_men.size();
queue
和 的变量名相同int
。重命名int
变量。
queue<int> free_men;
for(int i = 0; i < n; ++i) {
free_men.push(i + 1);
}
int free_men_size = free_men.size();
令人惊讶的是,错误消息并没有更明确。
您有一个重复的变量名称。
您将看到的不仅仅是您提到的编译器消息,因为在同一范围内重新声明free_men
(as ) 是非法的。int
queue<int> free_men;
for(int i = 0; i < n; ++i) {
free_men.push(i + 1);
}
int number_of_free_men = free_men.size(); // NOTE fixed name clash
您在这里有两个变量,它们在同一范围内具有相同的名称。如果将最后一行更改为:
int free_men_size = free_men.size()
事情可能会更好。