2012-03-18 3 views
1

나는 dict라고하는 map<string,vector<string> > 문자열을 문자열 목록에 매핑합니다. 특정 키의 값에 빈 값을 할당하고 싶습니다. 이런 식으로 :나중에 값을 넣을 빈 벡터 만들기

else dict[words[i]]=<EMPTY VECTOR WHERE I CAN PUSH DATA LATER INTO>; 

words는 문자열의 벡터입니다. 어떻게해야합니까? 표준 템플릿 라이브러리 사용하기.

+0

'dict'에 이미'words [i]'와 동일한 키가있는 요소가 있으면 어떤 행동을 원하십니까? (아니면 나머지 코드로는 불가능합니까?) – Mankarse

+0

'dict'에 'words [i]'라는 키가 포함되어 있으면 키와 연관된 벡터에 무엇인가가 푸시됩니다. 그 이유는 그 성명서에서 'else'를 쓰는 이유입니다. 불필요하게 사물을 복잡하게 만들었던 문제를 정확히 언급하지 않는 코드를 제공 할 생각입니다. – thekindlyone

답변

3

else dict[words[i]];으로 충분해야합니다. dict에 아직 words[i]에 해당하는 키가있는 요소가 포함되어 있지 않은 경우 words[i] 사본을 키로 사용하고 기본 생성 된 (빈) 벡터를 값으로 사용하여 dict에 새 요소가 만들어집니다.

dict에 이미 words[i]에 해당하는 요소가 포함 된 경우 dict은 수정되지 않습니다.

+1

충분하다. 그러나 의도는 코드의 독자에게 반드시 분명하지 않다. –

+0

'dict'은'map'이며'insert' 함수를 제공합니다. C++ 11 버전은 다소 간결하지만'dict.insert (map > :: value_type (words [i], vector ()); ({words [i], {}});':-) – boycy

2
dict[words[i]] = std::vector<std::string>();