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
你不應該多想這件事。編譯器會優化大量副本。因此,儘量避免複製會導致複雜的代碼,並且可能會因爲編譯器丟失並且不會進行優化而變慢。 –