当前位置:  开发笔记 > 编程语言 > 正文

C++ STL Vector Iterator访问Object的成员

如何解决《C++STLVectorIterator访问Object的成员》经验,为你挑选了1个好方法。

我想我已经正确地声明了一个带有对象的Vector.但是,在使用Iterator进行循环时,我不知道如何访问它的成员.

在我的代码中,行--- >> cout <<""<<*Iter;

如何打印成员的内容?喜欢*Iter.m_PackLine ???

不确定我是否使用了正确的术语,但感谢您的帮助!谢谢

class CFileInfo
{
  public:
      std::string m_PackLine;
      std::string m_FileDateTime;
      int m_NumDownloads;
};

void main()
{
  CFileInfo packInfo;

  vector unsortedFiles;
  vector::iterator Iter;

  packInfo.m_PackLine = "Sample Line 1";
  packInfo.m_FileDateTime = "06/22/2008 04:34";
  packInfo.m_NumDownloads = 0;
  unsortedFiles.push_back(packInfo);

  packInfo.m_PackLine = "Sample Line 2";
  packInfo.m_FileDateTime = "12/05/2007 14:54";
  packInfo.m_NumDownloads = 1;
  unsortedFiles.push_back(packInfo);

 for (Iter = unsortedFiles.begin(); Iter != unsortedFiles.end(); Iter++ )
 {
    cout << " " << *Iter; // !!! THIS IS WHERE I GET STUMPED
    // How do I output values of the object members? 
 }
}  // end main

Johannes Sch.. 16

cout << " " << *Iter;

只有在可以输出结构CFileInfo的重载时才会起作用operator<<.您可以输出结构的各个成员,如下所示:

cout << " " << Iter->m_PackLine;

或者,以下内容相当于:

cout << " " << (*Iter).m_PackLine;

你必须在*Iter周围加上括号,因为成员访问运算符会绑定更严格的.

在side-node上,使main函数返回int而不是void.使其返回void在C++中无效.


你声明这样的向量:

vector unsortedFiles;

第二个论点vector应该是另一回事.您的代码不需要为向量提供第二个参数.只要用这个:

vector unsortedFiles;

我注意到的另一件事是你使用Iter++(调用postfix increment)增加迭代器.对于迭代器,总是更喜欢++Iter,这被称为prefix increment.



1> Johannes Sch..:
cout << " " << *Iter;

只有在可以输出结构CFileInfo的重载时才会起作用operator<<.您可以输出结构的各个成员,如下所示:

cout << " " << Iter->m_PackLine;

或者,以下内容相当于:

cout << " " << (*Iter).m_PackLine;

你必须在*Iter周围加上括号,因为成员访问运算符会绑定更严格的.

在side-node上,使main函数返回int而不是void.使其返回void在C++中无效.


你声明这样的向量:

vector unsortedFiles;

第二个论点vector应该是另一回事.您的代码不需要为向量提供第二个参数.只要用这个:

vector unsortedFiles;

我注意到的另一件事是你使用Iter++(调用postfix increment)增加迭代器.对于迭代器,总是更喜欢++Iter,这被称为prefix increment.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有