2012-06-05 5 views
1

내 요구에 맞는 구조가 더 있는지 궁금합니다.지도가 필요하지만 포함되어 있는지 알아야하나요?

사전이나 문자열 (단어)이 있어야합니다. 주어진 단어가 사전에 있는지 만 알아야합니다.

문자열, 문자열의 맵을 만드는 것이 메모리 낭비처럼 보입니다. 더 좋은 방법이 있습니까?

감사

+0

결국 문자열 문자열 사전이 있어야합니까? – sithereal

답변

5

std::set<string>를 사용합니다. std::set::find을 사용하여 단어의 존재 여부를 확인할 수 있습니다.

0

원하는 것은 std::set<std::string>입니다.

0

Naveen 및 K-ballo의 답변이 적절합니다. 필요에 맞는 STL 컨테이너를 선택할 때 도움이 될만한 것이 있습니다. 참고 : 이것은 C++ 11 유형을 고려하지 않지만 STL 시작에 도움이됩니다. enter image description here

+0

뻔뻔한 플러그 : C++ 11에서이 다이어그램을 다시 그리도록 질문 받았습니다. 텍스트 대안을 제안했습니다. http://stackoverflow.com/questions/10699265/how-can-i-efficiently-select-a-standard-library-container-in-c11/10701102#10701102 –

0

std::set의 대안은 std::unordered_set입니다. 첫 번째는 일반적으로 적 - 검은 색 트리 (로그 복잡성)로 구현되고 두 번째는 해시 테이블 (평균 상수 시간 복잡도)입니다. unordered_set은 C++ 11, C++ 03 TR1 및 Boost에서 사용할 수 있습니다.

관련 문제