c++ - 如何在 C++ 中迭代这个指针列表?
问题描述
我有一个list
of pair
s 和CString
s 并且想要迭代它并在循环内部使用每个元素的first
和元素,但是这样做有问题。有人可以向我解释为什么这不起作用并帮助我解决问题吗?second
pair
list
for
这是我的代码:
list<pair<CString, CString>*> listSubstStr;
for (std::list<pair<CString, CString>*>::iterator it = listSubstStr.begin(); it != listSubstStr.end(); ++it) {
CxXML* p = pRoot->AddTag(NOWKT("Pair"));
p->SetString("First", it->first);
p->SetString("Second", it->second);
}
以下是错误:
解决方案
看来你的意思
p->SetString("First", ( *it )->first);
p->SetString("Second", ( *it )->second);
那就是表达式*it
有类型pair<CString, CString>*
。
还要检查是否在常量成员函数中调用了此代码。如果是这样,那么您必须使用 const_iterator 而不是迭代器。
推荐阅读
- xaml - 在 Xamarin 中将 Stepper 值与标签文本绑定
- android - Android web 服务 json 响应合并超级脚本评论®
- sql-server - 存储连接数据库密码的最佳位置
- git - 如何查看具有多个来源的远程分支
- python - 按组按比例分配熊猫列中的随机值
- abap - FOR 表达式和 let 表达式过滤内部表
- javascript - bings 地图中的巴林过境路线
- android - 如何在一组动态创建的 EditText 之后设置换行符?
- c# - 登录时 ASP.NET 身份密码哈希与纯文本密码不匹配
- kubernetes - kubernetes-dashboard 通过 istio [1.0.0] ingress --istio-ingressgateway 暴露