我正在尝试运行的代码:
std::string genBlankName(std::vector<Post> &posts)
{
std::string baseName = "New Post ";
int postNum = 1;
for (std::vector<Post>::iterator currentPost = posts.begin(); currentPost != posts.end(); currentPost++)
{
if (posts[currentPost].name.substr(0, baseName.length()) == baseName &&
utils::is_num(posts[currentPost].name.substr(baseName.length(), std::string::npos)) &&
utils::to_int(posts[currentPost].name.substr(baseName.length(), std::string::npos)) > postNum)
{
postNum = utils::to_int(posts[currentPost].name.substr(baseName.length(), std::string::npos));
}
}
return baseName + utils::to_string(postNum);
}
我得到的错误是:
抱歉,我不多说,但我认为这是很普通的事情,我只是不知道自己是个小子。我会用谷歌搜索它,但似乎没有什么问题太笼统,因为我怀疑这对我的实现或类似问题来说更多是问题。
最佳答案
下标需要使用索引,而您正在使用迭代器。
您根本不需要下标,只需取消引用迭代器即可:
currentPost->name.substr(0, baseName.length())
… 等等。