gpt4 book ai didi

c++ - 有没有办法让 std::map 到 "edit"值,就像键的谓词一样?

转载 作者:太空狗 更新时间:2023-10-29 21:29:34 24 4
gpt4 key购买 nike

我想知道是否可以为 std::map 的所有值创建类似谓词的东西,这样我就不必在将它们插入映射之前编辑这些值。

我想要的是这样的:

mymap["username"] = " Marlon "; // notice the space on both sides of my name
assert(mymap["username"] == "Marlon"); // no more whitespace

上下文是我正在为 .ini 文件创建一个 std::map 并且我希望它在我想要检索它们时自动从值中删除前导/尾随空格。我已经创建了一个谓词来忽略键中的大小写和空格,所以我想知道是否可以对值执行相同的操作。

最佳答案

我认为你必须遵循重载原则才能达到预期的目标,试试这个选项,

//map<string,string> testMap; Old Map definition
tMap testMap;

在哪里,

class tMap
{
public:

map<mystring,string> _tMap;

mystring& operator [] (const char *index)
{
return _tMap[index];
}

};

mystring 又是一个类,可以为'=='运算符重载以进行修剪。
我知道 map 可以作为一个类 (Wrapper) 实现,然后用于实现所需的结果。可能需要付出更多的努力才能解决这个问题。

关于c++ - 有没有办法让 std::map 到 "edit"值,就像键的谓词一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4528980/

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