d语言关联数组怎么根据键名排序而且我打印出来的顺序好像跟我书面定义的顺序不一样
在D语言中,关联数组是无序的,因此不能直接根据键名进行排序。如果需要按照键名排序,可以先将键名存储到一个数组中,然后对该数组进行排序,并按照排序后的顺序遍历关联数组。
以下是一个示例代码:
import std.stdio;
import std.algorithm;
import std.array;
void main()
{
int[string] dict = ["apple": 3, "banana": 2, "orange": 4, "pear": 1];
writeln("Before sorting:");
foreach (key, value; dict)
{
writeln(key, ": ", value);
}
string[] keys = array(dict.keys);
sort(keys);
writeln("After sorting:");
foreach (key; keys)
{
writeln(key, ": ", dict[key]);
}
}
输出结果为:
Before sorting:
orange: 4
pear: 1
banana: 2
apple: 3
After sorting:
apple: 3
banana: 2
orange: 4
pear: 1
可以看到,先输出了关联数组中的元素,顺序与定义时的顺序不一样。然后将键名存储到数组中,并对数组进行排序,最后按照排序后的顺序输出关联数组中的元素
原文地址: https://www.cveoy.top/t/topic/fyOj 著作权归作者所有。请勿转载和采集!