구조체를 만들었고 구조체에 메트릭이 있습니다. 나는이 구조체의 시리즈를 생성하고 있는데이 메트릭을 기반으로 배열로 정렬하려고합니다. 기본적으로 메트릭이 0 인 경우 배열의 [0] 슬롯에있는 목록에서 원하는데, 메트릭이 14 일 경우 배열의 [14] 슬롯에있는 목록에서 원하는 것입니다. 메트릭의 경계 (배열의 크기)는 구조체가 생성 된 동일한 변수를 기반으로 가변적이어서 malloc을 사용하여 배열을 동적으로 선언해야합니다. 나는이 구조체 배열 목록을 얻는 방법을 실험 해왔다. 나는 그것을 이해할 수 없다. 내가 문제를 봤어 그리고 해결책을 생각해 낼 수 없었습니다.선언, 변경 및 C++의 구조체 목록 배열에 추가
배열을 가져 오면 특정 배열 셀 목록에 다른 요소를 어떻게 추가합니까? 그런 다음 i 번째 셀의 목록의 모든 요소를 (n-i) 번째 셀의 요소와 비교합니다.
편집 : 모든 측정 항목에 요소가있는 것은 아닙니다.
편집 2 : 시도한 결과 몇 가지 문제가있는 것으로 보입니다.
list<s_pair> *pairs;
pairs = (list<s_pair>*) malloc(sizeof(list<s_pair>) * (N + 1));
j = { a, b };
pairs[m].push_back(j);
여기서 m은 s_pair 유형의 메트릭입니다. 컴파일하는 것이지만 push_back (j)을 시도하는 데 막혔습니다.
각 메트릭에는 구조체가 하나만 있으며 분포가 밀집되어 있습니다 (구멍이 거의 없거나 전혀없는 경우)? '선언하는 '은 당신이 사용하는 의미가 아니라'정의하는'또는'할당하는 '것을 원한다는 것을 명심하십시오. 이것은 C와 C++에서 특히 중요합니다. C와 C++은 모두 구별되고 잘 정의 된 개념입니다. (정의하는 것은'선언하는 것 '을 의미하지만 그 반대는 아닙니다.) – Deduplicator
아니요. 각 측정 항목에는 구조체가 없거나 구조체가 포함될 가능성이 있습니다. 메트릭 중 1/4은 구조체가 없지만 나머지는 적어도 하나는 있어야한다고 말해야합니다. 또한주의해야합니다. 그 정의는 무엇을 선언합니까? – BeaumontTaz
열린 체인이있는 해시 테이블을 설명하는 것처럼 보입니다. (메트릭은 해시 함수입니다.) – Deduplicator