在D中对关联数组进行排序

StillLearningToCode

这可能不是最好的主意,但我试图使用D的某些内置功能对关联数组进行排序。这样我就可以对最高或最低值进行切片以进行计算。

我试过了:

sort!((a,b) {return query[a] < query[b];})(query);

和:

sort(query);

导致相同的错误:

错误:模板std.algorithm.sort无法从参数类型!()(int [string])推导函数,候选者为:/usr/local/Cellar/dmd/2.066.1/include/d2/std/algorithm.d( 9384):std.algorithm.sort(alias less =“ a <b”,SwapStrategy ss = SwapStrategy.unstable,Range)(Range r)if((ss == SwapStrategy.unstable &&(hasSwappableElements!Range || hasAssignableElements!Range )|| ss!= SwapStrategy.unstable && hasAssignableElements!Range)&& isRandomAccessRange!Range && hasSlicing!Range && hasLength!Range)

这是整个班级:

import std.stdio;
import std.array;
import std.algorithm;

import DataRow;
import LocationMap;

class Database{

this(){ /* intentionally left blank */}

public:
    void addRow(DataRow input){ this.db ~= input; }
    DataRow[] getDB(){ return this.db; }
    DataRow getDBRow(uint i){ return this.db[i]; }

    int[string] exportQuery(uint year){

        int[string] query;
        foreach (DataRow row ; db){
            if (row.getYear() == year){
                query[row.getCountryName()] = row.getExports;
            }
        }
        //sort!((a,b) {return query[a] < query[b];})(query);
        sort(query);
        return query;
    }

private:
    DataRow[] db;
    LocationMap locMap;
}
科林·格罗根

正如Andrei所说,您不能直接对关联数组进行排序。

但是,您可以对它的键(或相应的值)进行排序,并以排序的方式访问数组。

int[string] myAA = ["c" : 3, "b" : 2, "a" : 1];
foreach(key; myAA.keys.sort){ // myAA.values will access the values in the AA
    writefln("(Key, Value) = (%s, %s)", key, myAA[key]);
}

将打印

(Key, Value) = (a, 1)
(Key, Value) = (b, 2)
(Key, Value) = (c, 3)

虽然我不认为这对于巨大的AA来说不是特别有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

d中的动态关联数组

来自分类Dev

D中关联数组的常数

来自分类Dev

排序SystemVerilog关联数组的最佳方法?

来自分类Dev

根据键值对Php关联数组进行排序

来自分类Dev

根据重复元素的数量对PHP中的多维关联数组进行排序/限制

来自分类Dev

PHP排序关联数组

来自分类Dev

Java中的关联数组

来自分类Dev

如何在PHP中按键值对关联数组进行排序

来自分类Dev

关联数组排序值

来自分类Dev

对具有多个条件的关联数组进行排序

来自分类Dev

如何通过给定键的值对关联数组进行排序并在php中维护键?

来自分类Dev

按键值对php中的关联数组进行排序

来自分类Dev

如何通过具有相同ID的Javascript中的sort函数对关联数组进行排序?

来自分类Dev

如何在php Laravel中对关联数组进行排序

来自分类Dev

在openscad中的关联数组?

来自分类Dev

Javascript关联数组排序

来自分类Dev

按字母顺序对关联数组/ javascript对象进行排序

来自分类Dev

关联数组的排序数组

来自分类Dev

根据重复元素的数量对PHP中的多维关联数组进行排序/限制

来自分类Dev

在javascript中关联数组

来自分类Dev

关联数组中的关联数组

来自分类Dev

在PHP中对复杂的关联数组进行排序

来自分类Dev

Javascript:使用value属性对关联数组进行排序,而无需转换为对象数组

来自分类Dev

如何在php Laravel中对关联数组进行排序

来自分类Dev

如何按降序对关联数组进行排序?

来自分类Dev

关联数组中的树

来自分类Dev

如何按特定属性对 PHP 中的关联数组集合进行排序

来自分类Dev

在javascript中对对象的关联数组进行排序

来自分类Dev

按关联数组上的重复值对关联数组进行排序

Related 相关文章

热门标签

归档