c++ - 如何对包含通过索引相互关联的数据的多个数组进行排序

标签 c++ arrays sorting file-io vector

我有一组包含城市、国家、纬度和纬度的数组。 c++语言。

ifstream file("worldcities.csv");
getline(file, temporay);
//inputs the file into 4 arrays for each catergories
for (i=0;getline(file,(cities[i]),',');i++)
{
getline(file, countries[i], ',');
getline(file, latitude[i], ',') ;
getline(file, longitude[i]);
}

我如何同时对纬度和经度数组进行排序,以找到列表中所有其他最低或最高的前五名,但同时又不丢失城市和国家/地区的元素,这些元素是经纬度与?

最佳答案

“同时不要丢失与经纬度相关的城市和国家/地区的元素”

当这些是属于一起的值时,为什么不将它们捆绑在一个对象中? IE。:
struct Location {
    std::string city, country;
    double lng, lat;
};

一旦你将所有位置加载到 std::vector<Location> 中那么你可以定义自己的比较器并使用 std::sort .

这个问题可能对您有帮助:How to use std::sort with a vector of structures and compare function?

关于c++ - 如何对包含通过索引相互关联的数据的多个数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19280566/

相关文章:

c++ - 如何使用 Gtk::Builder 将正确的 Glib::RefPtr 存储到非小部件

javascript - 为什么我在数组中推送的值未定义?

c - 带字符串数组的 strcpy

algorithm - 分区选择算法

Java如何对数组: List<Object[]>的列表进行排序

c++ - 如何在文件中存储每 channel 16 位的图像?

c++ - move 赋值运算符和 move 构造函数之间的区别?

C++冒泡排序返回奇怪的值

c++ - 我需要一个正则表达式来标记 C++ 中引号内的多个单词

javascript - 如何在 JavaScript 中将整数分隔成数组中的单独数字?