use*_*053 2 c++ string iterator set
我有一组字符串,我需要访问每个字符串,并将字符串的第一个字母与一个char进行比较,如果它们相同则停止。我该如何处理?我尝试过
char* p;
for (std::set<string>::iterator iter=myset.begin(); iter!=myset.end();iter++)
{p = *iter;
if (p==characterForComparison) return 0;
}
Run Code Online (Sandbox Code Playgroud)
但这并没有通过编译器,它说
error C2440: '=' : cannot convert from 'std::basic_string<_Elem,_Traits,_Ax>' to 'char *'
Run Code Online (Sandbox Code Playgroud)
我该如何解决?我需要的非常简单,因此我需要一个尽可能简单的解决方案,只需遍历所有字符串,比较第一个字母,如果相同,则返回0;否则,返回0。
要比较std::stringjust do的第一个字符:
if (!(*iter).empty() &&
(*iter)[0] == characterForComparison)
{
}
Run Code Online (Sandbox Code Playgroud)
要访问第一个元素的字符串,字符串提供operator[],front()或使用begin以获得参照第一要素。参见std :: string页面。