我有这个问题。是否可以宣布更多集合&#34;组&#34;只有一个set<string>name
,其中&#34; name&#34;将是字符串,它将随着周期的每次旋转而改变?我的意思是这样的:
#include <cstdlib>
#include <iostream>
#include<string>
#include <set>
using namespace std;
int main(int argc, char** argv) {
set<string> setname;
string example = "This is an example of string";
string s;
istringstream f(example);
while (getline(f, s, ' ')){
set<string>s;
}
return 0;
}
问题是,即使在周期再循环一次之后,集合是否仍会被声明,即使在{&#34; s&#34;之后也会声明set<string>This
。将是字符串&#34;是&#34;。提前谢谢。
答案 0 :(得分:0)
问题是即使在循环再次旋转
之后,这些集合是否仍会被声明
string s;
与set<string>s;
的声明。他们是无关的!set<string>s;
将为while
循环的每个周期创建一个新的集合实例。答案 1 :(得分:0)
在这个循环中
while (getline(f, s, ' ')){
set<string>s;
}
类型std::set<std::string>
的对象将在循环的每次迭代中重新创建,因为它是循环的复合语句的局部变量。