class Demo {
struct FileData {
int size;
BYTE* buffer;
DWORD flags;
};
typedef std::tr1::unordered_map<std::wstring,FileData> FileMap;
FileMap m_fileMap;
void myFunc()
{
std::wstring name = L"TestFile.png";
FileMap::const_iterator iter = m_fileMap.find(name);
std::cout << iter->first;
}
};
위의 코드를 살펴보십시오. 내 문제는 어떻게 FileMap :: const_iterator 작동합니다. 키 (std :: wstring) 및 값 (FileData)의 복사본을 만드나요? 아니면 그것은 단지 포인터와 키와 값에 대한 참조를 가지고 있습니까?C++ STL unordered_map 반복자 문제
글쎄, 실제로 나는 그것이 작동하는 방법에 대한 그냥 궁금했다. 그래서'std :: tr1 :: unordered_map fileMap; '을 사용하는 것이 키와 값의 복사본을 만들지 않기 때문에 효율적이라는 것을 확신합니다. –
MorrisLiang
그것에 대해 많이 생각하면 안됩니다. 컴파일러는 많은 복사본을 최적화합니다. 따라서 복사본을 피하려고하면 많은 경우 컴파일러가 손실되고 최적화되지 않으므로 코드가 복잡해지고 컴파일러가 느려질 수 있습니다. –