没有类或结构的 C++ 排序数据类型

Posted

技术标签:

【中文标题】没有类或结构的 C++ 排序数据类型【英文标题】:C++ Sorting Data Type without classes or structs 【发布时间】:2018-03-13 21:51:08 【问题描述】:

尝试实现一个 cpp 程序,该程序根据年份对出版物列表进行排序,而不使用类。

假设这些信息在一个文本文件中,每个文件由一个制表符分隔:

save_app    "authors_list3"  "title3"   "conference2"   2010    "oral"

在这个函数中,我必须将这些数据存储在一个列表中(最好使用向量)

#include <tuple>
...
void SaveApp(const vector<string>& tokens)

  string authors = tokens[1];
  string title = tokens[2];
  string venue = tokens[3];
  int year = atoi(tokens[4].c_str());
  string presentation = tokens[5];

  vector<tuple<string, string, string, int, string>> line; //I used this because there's no boost function.


我的问题是如何将这些数据存储到一个向量中,以便在以后的函数中,我可以根据年份对整个向量进行排序?另外,我需要迭代以查看是否有不止 1 行信息。

【问题讨论】:

c++11 sorting list using lambda的可能重复 vector&lt;tuple&lt;string, string, string, int, string&gt;&gt; 可以按照int组件排序——完成。 使用结构的原因是什么? 【参考方案1】:

当在vector&lt; pair&lt; int,tuple&lt; string,string,string,string&gt; &gt; &gt; v 上调用sort(v.begin(),v.end()) 时,它按int 排序。

【讨论】:

以上是关于没有类或结构的 C++ 排序数据类型的主要内容,如果未能解决你的问题,请参考以下文章

c++中参考C语言的qsort函数实现一个一个能对任意数据类型(包括结构体)的数组进行排序的函数

如何在没有具体的情况下将 CSV 数据存储在某种数据结构中:C++ 中的列数、列类型等

跟我学c++中级篇——STL算法之排序

C++中的map如果是结构体需要注意什么问题?

Class文件内容解析

接受所有数据类型的不区分大小写的 C++ 排序?