gpt4 book ai didi

c++ - 如何使一个函数同时适用于字符串和 wstring?

转载 作者:太空宇宙 更新时间:2023-11-04 15:38:03 25 4
gpt4 key购买 nike

如果我想要像下面这样的函数在 basic_string<char> 上工作和 basic_string<wchar>我应该怎么办?请注意,它必须更改 wchar_t在无序映射中。

函数还需要接受wchar_t数组以支持将参数作为文字传递。

bool isUnique(wstring s)
{
if (s.size() <= 1)
{
return true;
}
unordered_map<wchar_t, bool> charSeen;
for (int i = 0; i < s.size(); i++)
{
if (!charSeen[s[i]])
{
charSeen[s[i]] = true;
}
else
{
return false;
}
}
return true;
}
int main(int argc, char *argv[]) {
cout << isUnique(L"فعه");
return 0;
}

最佳答案

让一个辅助函数接受一个字符指针并委托(delegate)给传递一个 std::basic_string 的主函数:

template<class charT>
bool isUnique(charT const* p)
{
return isUnique(std::basic_string<charT>(p));
}

然后更改您的主要 isUn​​ique 函数以获取一个以其字符类型为模板的 std::basic_string:

template <typename charT>
bool isUnique(std::basic_string<charT>);

关于c++ - 如何使一个函数同时适用于字符串和 wstring?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28662338/

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