2016-10-29 2 views
-2

나는 규칙을 정의하기 위해 1, 0 및 2의 무작위 순서를 생성해야하는 데이터 집합을 분류하는 유전 알고리즘을 만들고 있습니다. 2는 2 상태 1과 0에 있음을 나타냅니다. Map 생성 된 임의의 규칙 집합과 각 규칙의 출력을 매핑하는 STL. 동적 인지도 키/맵핑 키가 필요합니다. 모든 반복/생성이 새로운 규칙 채우기로 변경됩니다.Map STL C++를 사용하는 것보다 더 좋은 방법이 있습니까?

내 코드가 복잡하고 가독성 문제가있는 포인터를 사용할 수있는 옵션이 있다는 것을 알고 있습니다.

내가 알고있는 또 다른 옵션은 핵심 요소와 값을 복사하고 삭제하여 새로운 규칙으로 바꿀 수 있다는 것입니다.

내 질문은 :

1)입니다. 벡터와 내 매핑 알고리즘을 사용하는 것이 더 나은가요? 유일한 문제는 내가 2000 개 이상의 데이터를 처리 할 때 효율적이고 빠르 길 원합니다.

2). pls을 다운로드해야하는 라이브러리를 사용할 수없는 다른 STL이 있습니까?

3). 지도를 사용하고 매번지도의 요소를 재설정하여 다시 초기화 할 수 있도록할까요?

어떤 방법이 효과적일까요?

다른 제안이나 조언이 필요합니다.

+0

좋습니다 여기 질문을하는 데 필요한 벤치 마크는 무엇입니까? 이것이 광범위한 질문 일 수 있음을 이해합니다. 이 투표를하지 말고 나를 인도하십시오. –

+0

상관 없습니까? 숙련 된 개발자는 간단하고 명확한 코드를 먼저 작성한 다음 성능이 문제인지 확인합니다. 그리고 네가 성능이 문제가 될 것이라는 것을 마술처럼 알았더라도 그렇게 할 수 있습니다 - 당신이 알고있는 좋은 버전을 원한다면 빠르고 복잡한 버전과 비교할 수 있습니다. – MSalters

+0

그것은 중요하지 않지만 가능한 한 많은 옵션을 검토했다는 것을 알고 싶었습니다. 나는 많은 사람들이 map stl에 대해 작업했고 가능한 한 효율적으로 처리 할 수있는 버그가 적고 처리 할 버그가 적다는 점에서 프로그램의 성능을 전제로하고있다. –

답변

0

데이터 정렬 순서대로하지 않으려면 std :: unordered_map <>을 고려해 볼 수 있습니다. 일부 벤치 마크에 대해서는 this을보십시오.

+0

음 ... 내지도가 정적이 아닙니다. 제공된 링크에 대한 의견을 읽으면 순서가 매겨지지 않은지도를 사용하는 것이 도움이되지 않는 것 같습니다. 프로그램을 가능한 한 빠르고 간단하게 만들고 싶습니다.하지만 하나를 교환해야한다면 아마 빠를 것입니다. –

관련 문제