没有类或结构的 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<tuple<string, string, string, int, string>>
可以按照int组件排序——完成。 不使用结构的原因是什么?
【参考方案1】:
当在vector< pair< int,tuple< string,string,string,string> > > v
上调用sort(v.begin(),v.end())
时,它按int 排序。
【讨论】:
以上是关于没有类或结构的 C++ 排序数据类型的主要内容,如果未能解决你的问题,请参考以下文章
c++中参考C语言的qsort函数实现一个一个能对任意数据类型(包括结构体)的数组进行排序的函数