遍历C++中的字符串列表,出了什么问题?

Iterating over a list of Strings in C++, what's going wrong?

本文关键字:什么 问题 列表 C++ 字符串 遍历      更新时间:2023-10-16

我想打印出一个字符串列表:

std::list<String> const &prms = (*iter)->getParams();
std::list<String>::const_iterator i;
for(i = prms.begin(); i != prms.end(); ++i){
  log.debug("  Param: %s",*i);
}

但是我的程序崩溃说Illegal Instruction。我做错了什么?

*iString,不是char *。如果log.debug()printf族的函数,则需要一个以零结尾的字符串。根据你的String类是如何实现的,你可能有一个返回const char *的函数。

std::string为例,该函数为 c_str :

for(std::list<std::string>::const_iterator i = my_list.begin(); i != my_list.end(); ++i)
{
     printf("%sn", i->c_str());
}