首页 > 解决方案 > 如何在 C++ 中迭代这个指针列表?

问题描述

我有一个listof pairs 和CStrings 并且想要迭代它并在循环内部使用每个元素的first和元素,但是这样做有问题。有人可以向我解释为什么这不起作用并帮助我解决问题吗?secondpairlistfor

这是我的代码:

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);
   }

以下是错误:

图片

标签: c++

解决方案


看来你的意思

  p->SetString("First", ( *it )->first);
  p->SetString("Second", ( *it )->second);

那就是表达式*it有类型pair<CString, CString>*

还要检查是否在常量成员函数中调用了此代码。如果是这样,那么您必须使用 const_iterator 而不是迭代器。


推荐阅读