我需要建议以最佳方式使用STL容器对3组数据进行排序 1. ID(整数) 2.第一个值(字符串) 3.第二个值(字符串)
数据结构的一个例子如下:
我想使用map,因为它在插入时排序,不需要单独执行排序算法。由于ID可以重复,因此它必须是一个多图,并且列的每个数据都相互链接,因此行将更改,以便排序保持附加到ID的相同值。
对ID和值进行排序是正常的,但如何对2个值进行排序,因为multimap只能使用一个值。根据我的想法,它将是多图的多重映射或数据结构的结构,然后是STL容器。但我希望尽可能简单。我需要建议如何实现这一目标。
谢谢!
答案 0 :(得分:0)
当且仅当您要进行许多插入/擦除操作时,有一个地图或一组是有意义的。如果数据结构是静态的,那么存储一个向量并对其进行一次排序会更有效。也就是说,如果我正确理解你的问题,我认为你不需要地图,而是需要多重集。
typedef pair<int, pair<string, string>> myDataType;
set<myDataType> mySet;
这里,operator <
对将负责排序。
如果您不想将ID称为elem.first
,将字符串称为elem.second.first
和elem.second.second
,则可以使用结构并重载{{1对于它。
operator <
答案 1 :(得分:0)
您可以使用<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.data>
<xp:dominoDocument var="document1" formName="Contact"></xp:dominoDocument>
</xp:this.data>
<xp:this.resources>
<xp:script src="/JQueryXSnippet.js" clientSide="true"></xp:script>
</xp:this.resources>
<script type="text/javascript" src="bootstrapfileinput4/js/fileinput.js"></script>
<link rel="stylesheet" href="bootstrapfileinput4/css/fileinput.css" media="all" type="text/css" />
。按字典顺序比较元组,因此您可以免费获得所需的效果。
答案 2 :(得分:0)
多图中的元素按键排序。你不能'排序'多图。你可以做的是创建std::set<std::tuple<int, std::string, std::string>>
的向量,其元素满足某些逻辑条件和排序向量。