| Thread overview | |||||
|---|---|---|---|---|---|
|
February 22, 2014 Build Hash from Array in one statement ? | ||||
|---|---|---|---|---|
| ||||
Hello,
Is there a way to quickly build a hash from the values of an array?
A one-statement equivalent of:
T[] array_values ;
int[T] hash_values;
hash_values = map!(XXXX) (array_values) ;
Instead of:
for (v; array_values) {
hash_values[v] = 1;
}
in Perl, that would be:
%hash = map { $_ => 1 } @array;
---
Or, put differently, is there a way to convert values in an array to keys of hash in one statement ?
Thanks!
-gordon
| ||||
February 22, 2014 Re: Build Hash from Array in one statement ? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Gordon |
> ---
>
> Or, put differently, is there a way to convert values in an array to keys of hash in one statement ?
>
> Thanks!
> -gordon
std.array.assocArray.
--
T[] keys;
auto aa = zip(keys, repeat(true)).assocArray;
| |||
February 22, 2014 Re: Build Hash from Array in one statement ? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Gordon | On 02/22/2014 11:26 AM, Gordon wrote:
> Is there a way to quickly build a hash from the values of an array?
If I am allowed to misunderstand :) it as a *single* hash from all of the values, then you can use D's internal hash algorithm for arrays:
import std.stdio;
void main()
{
auto arr = [ 1, 2, 3 ];
writeln(typeid(arr).getHash(&arr));
}
Ali
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply