小编ric*_*hyz的帖子

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

我想我已经正确地声明了一个带有对象的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<CFileInfo, CFileInfo&> unsortedFiles;
  vector<CFileInfo, CFileInfo&>::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 …
Run Code Online (Sandbox Code Playgroud)

c++

11
推荐指数
1
解决办法
3万
查看次数

C++对矢量或链表进行排序

我有一个输入文件,我想根据时间戳排序,时间戳是每个记录的子字符串.我想存储多个属性

该列表目前约有1000条记录.但是,我希望它能够扩大一点以防万一.

当我使用链接列表通过搜索整个列表进行插入时,花了大约20秒.现在,只需填充一个矢量并输出到文件需要4秒钟(这听起来太长了)?

我想使用合并排序或快速排序(合并排序对我来说似乎更容易).我遇到的麻烦是我没有看到使用对象而不是原始数据类型实现这些排序的许多示例.

我可以使用矢量或链接列表.到目前为止,我从这个网站获得的反馈最有帮助.我希望有人可以洒上神奇的小精灵尘埃,让我更轻松:)

任何链接或示例以最简单的方式执行此操作具有相当不错的性能将是非常感谢.我对如何使用对象实现这些排序感到困惑,因为我是C++的新手:)

这是我的新代码的样子(尚无排序):

class CFileInfo  
{  
    public:  
    std::string m_PackLine;  
    std::string m_FileDateTime;  
    int m_NumDownloads;  
};  
void main()  
{  
    CFileInfo packInfo;  
    vector<CFileInfo> unsortedFiles;  
    vector<CFileInfo>::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).m_PackLine;  
    }  
}  
Run Code Online (Sandbox Code Playgroud)

c++ algorithm

4
推荐指数
2
解决办法
7066
查看次数

标签 统计

c++ ×2

algorithm ×1