C++ - 在 FOR 循环中从向量获取大小
Posted
技术标签:
【中文标题】C++ - 在 FOR 循环中从向量获取大小【英文标题】:C++ - Gettings size from vector in FOR loop 【发布时间】:2013-01-20 23:58:28 【问题描述】:我有一个要求用户输入的循环,并将其添加为向量,然后当他们键入“EXIT”时,它将停止并显示列表。我现在要做的是用size()
确定元素的数量
这就是我所拥有的:
#include <iostream>
#include <string>
#include <unistd.h>
#include <iterator>
#include <vector>
using namespace std;
int main()
write(1,"\E[H\E[2J",7);
vector<string> list;
cout << "Enter UIDs: \n\n";
for(string uid ; cin >> uid && uid != "EXIT"; list.push_back(uid))
cout << " \n";
copy(list.begin(), list.end(), ostream_iterator<string>(cout, "\n\n"));
cout << "Vector size: " << uid.size() << endl;
return 0;
尝试编译时出现错误:
g++ sof.cpp -o sof
sof.cpp:在函数“int main()”中: sof.cpp:16:32:错误:“uid”的名称查找已更改为 ISO“for”范围 sof.cpp:13:16:错误:不能在“uid”处使用过时的绑定,因为它有一个析构函数
【问题讨论】:
uid
在第 16 行不存在;它只在for
循环的范围内。 (提示:您的循环内容周围没有任何大括号)。
我已编辑以适当地格式化您的代码。这应该突出 @OliCharlesworth 提出的观点,即您缺少 for 循环主体的大括号。
@JonTaylor 不是真的,代码不需要大括号。错误是uid.size()
调用,应该是list.size()
。
@OliCharlesworth 实际上,这里不需要大括号。
@juanchopanza 是的,我再次查看代码后意识到,但格式仍然有帮助。
【参考方案1】:
您查询的是uid.size()
而不是list.size()
【讨论】:
以上是关于C++ - 在 FOR 循环中从向量获取大小的主要内容,如果未能解决你的问题,请参考以下文章
根据向量大小在 for 循环内擦除 std::vector 的索引