gpt4 book ai didi

c++ - Unordered_map 找到 const wchar_t*

转载 作者:搜寻专家 更新时间:2023-10-30 23:51:42 31 4
gpt4 key购买 nike

我使用以下代码从文件路径获取文件名:

const wchar_t* MyClass::PathFindFileNameW(const wchar_t* path)
{

const wchar_t* p1 = path ? wcsrchr(path, L'\\') : nullptr;
const wchar_t* p2 = path ? wcsrchr(path, L'/') : nullptr;

p1 = !p1 || (p2 && p2 > p1) ? p2 : p1;

return (p1 ? p1 + 1 : path);

}

我还有以下 unordered_map 定义:

std::unordered_map<const wchar_t*,std::string> mymap = {
{L"file1.doc","Author1"},
{L"file2.doc","Author2"},
{L"file3.doc","Author3"} };

使用以下代码,我想通过文件名从 map 中获取作者:

std::unordered_map<const wchar_t*,std::string>::const_iterator got = mymap.find(this->PathFindFileNameW(this->path));

if (got == mymap.end())
{

Log("No result");

}

即使文件名存在于 map 中,此代码也会记录“无结果”。类似于:

std::unordered_map<const wchar_t*,std::string>::const_iterator got = mymap.find(L"file1.doc");

给出结果。我在这里错过了什么?

最佳答案

你有一个以指针作为键的映射,所以你只能找到一个字符串,如果它存储在与键相同的地址。

使用 std::wstring 作为键。

关于c++ - Unordered_map 找到 const wchar_t*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53719188/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com