以下是一个C++代码示例,可以按照数值和字典顺序对一个元组
#include
#include
#include
#include
bool compareTuple(const std::tuple& tuple1, const std::tuple& tuple2) {
// 按照数值顺序排序
if (std::get<1>(tuple1) < std::get<1>(tuple2)) {
return true;
}
else if (std::get<1>(tuple1) > std::get<1>(tuple2)) {
return false;
}
else {
// 如果数值相同,则按照字典顺序排序
return std::get<0>(tuple1) < std::get<0>(tuple2);
}
}
int main() {
// 创建一个包含元组的向量
std::vector> tupleVector = {
std::make_tuple("Apple", 5.6),
std::make_tuple("Banana", 3.2),
std::make_tuple("Orange", 5.6),
std::make_tuple("Pear", 2.8)
};
// 对向量进行排序
std::sort(tupleVector.begin(), tupleVector.end(), compareTuple);
// 打印排序后的结果
for (const auto& tuple : tupleVector) {
std::cout << std::get<0>(tuple) << ": " << std::get<1>(tuple) << std::endl;
}
return 0;
}
运行上述代码后,将会按照数值和字典顺序对元组进行排序,并输出排序后的结果。
上一篇:按照数值对数组进行排序
下一篇:按照数值或百分比计算