4
주어진 배열에서 어떤 요소가 가장 자주 발생하는지 알아보기 위해 std.algorithm에서 group 함수를 사용했습니다. 먼저 배열을 정렬하고 (더 이상 필요하지는 않은 것 같습니다) 그룹으로 전달하고 튜플 배열을 정렬하여 첫 번째 요소를 취할 수 있도록합니다. 그것은 작동하지만, 지금은 오류 : 중첩 배열 복사본. Win32 용 2.053 버전을 사용하고 있습니다. 나는 D2와 Phobos가 건설 중임을 알고 정말 놀라지 않습니다. 문제의 원인에 대해 조금 혼란스러워했습니다.d2 : 중복 배열 복사본
import std.stdio, std.algorithm, std.array;
void main() {
int[] arr = [ 1, 2, 2, 2, 2, 3, 4, 4, 4, 5 ];
auto a = sort!("a[1] > b[1]")(array(group(arr)))[0];
}
오류 내가 갖는이 :
[email protected]\rt\arraycat.d(40): overlapping array copy
----------------
42EB58
42E9CF
4061F8
4060A0
406166
405EE8
402072
408898
4088D7
4084D3
4532C9
----------------
배열의 내용은 차이가 많이 있습니다. 다음 코드는 컴파일하고 올바른 결과 출력 :
import std.stdio, std.algorithm, std.array;
void main() {
int[] arr = [ 1, 2, 3, 4, 4, 4, 5 ];
auto a = sort!("a[1] > b[1]")(array(group(arr)))[0];
writeln(a);
}
// prints: Tuple!(int,uint)(4, 3)
-release 스위치를 사용하여 컴파일하면 버그 보고서에 나와 있듯이 실제로 문제가 해결됩니다. 감사. – fwend