- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include <QMultiMap>
template <typename TKey, typename TValue>
TKey lastKeyOf(const QMap<TKey, TValue>& map)
{
if (map.isEmpty())
throw something;
return (map.end() - 1).key();
}
我问的原因是:
template <typename TKey, typename TValue>
QMultiMap<TKey, TValue>;
继承QMap<TKey, TValue>
公开地。所以如果我打电话:
QMultiMap<int, std::string> multimap;
...
lastKeyOf(multimap);
lastKeyOf
里面的所有调用静态绑定(bind)到他们的 QMap
版本而不是 QMultiMap
版本,自QMap
不适合多态使用(无虚拟析构函数)。
我什至不确定这个用途叫什么。是对象切片吗?
最佳答案
我相信这应该是安全的。 QMultiMap 只是向 QMap 添加了一组新的重载方法,如果您在 lastKeyOf() 中使用一个函数,而该函数在 QMultiMap 中被重载以具有不同的行为,您只会得到意想不到的结果。我能看到的唯一具有兼容签名和不同行为的重载方法是 insert()。
话虽如此,它可能会产生更直接的代码来避免 QMultiMap 并仅将 QMap 与 QMap::insertMulti() 而不是 QMap::insert() 一起使用。
关于c++ - QMap 的这种使用可能有害吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16651683/
我经常看到这样的代码: if(myQMap.contains("my key")){ myValue = myQMap["my key"]; } 理论上在 QMap 中执行两次查找。 我的第一
我在 MS Visual C++ 2010 中使用 Qt 4.7.4。 我正在使用以下 QMap: QMap m_oMapHistHandle; 其中 T_FileMapKey 定义为: typed
QVariant (需要 QSettings 类)支持从 QMap 创建 但是尝试初始化这样的东西: QMap)> i; 给出错误: function returning a function. 然后
是否可以写和初始化 QMap> 在 Qt 5.10 中? 例如我想这样做 QMap> ee{"MAC", 0,0,}; // string, section 0, line 0 当我提供 Mac 时
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我在 Windows 8.1 上使用 Qt 5.5。当我运行下面的代码时,应用程序能够通过一次迭代,但在第二次迭代时崩溃。 100% 可重现。 (将其复制/粘贴到 Qt Creator 实例中并进行测
#include template TKey lastKeyOf(const QMap& map) { if (map.isEmpty()) throw something
我正在用 Qt 开发一款游戏。我的角色/对象存储在我的模型类中(我尝试遵循 MVC 模型)。 我为每个对象创建了一个 QMap : QMap *safes; QMap *mushroom; QMap
我想使用我之前创建的 QMap 在插槽内使用。我试过关注 this但它仍然没有用(我想我只是在做一些愚蠢的事情)。这是我正在使用的代码。 构造函数: QMap > tiles; connect(ui
我想在类里面使用 QMap,但出现错误: /* path */.h:18: error: template argument required for ‘class QMap’ class QMap
比较两个 QMaps 并删除不在第一个 map 中的条目并将第二个 map 的条目添加到第一个 map 中的最佳方法是什么?假设我有一张 map {1,2,3} 和一张 map {1,2,4} 我想保
我有一个 QMap 对象: QMap map; 我想通过 TCP 套接字发送它。我必须将其转换为 JSON 然后发送吗? 最佳答案 尝试使用这种方法: 在服务器端使用它来发送 map : // to
大家好 我有一个代码片段如下: class AppCtx { private: QMap pluginsMap; public : void addPlugin(IRzPlugin *plugin
我有一个问题。我想我正在做一些非常愚蠢的事情。我是 C++ 和 Qt 的新手。 我有一个类 SavedVar。我正在尝试向私有(private)成员 Qmap 添加键/值。当我调用 SavedVar:
作为一个新手 valgrind 用户,我无法弄清楚它输出以下消息的原因 40 bytes in 1 blocks are definitely lost in loss 违规代码行如下: void K
我找不到为 QMap 设置自定义比较器函数的方法,就像我可以为 std::map (其模板参数的 typename _Compare = std::less 部分)。 是否 QMap有办法设置吗? 最
我在 C++ 中工作,想创建一个带有 QMap 可选参数的函数。问题是我将默认值设置为什么。我希望它是一张空 map 。 void function(int i, QMap MyMap = ???)
我需要像 QMap 这样的结构,但不需要按键排序,所以如果我先在那里插入项目,我可以计算出这个项目将在所有其他项目之前。并在指定元素之前或之后插入对。 Qt有这样的吗? 最佳答案 QMap 以树的形式
我正在尝试在我的 QT 应用程序中使用此代码 QMap 但是它说存在构建问题 C:/****/****/****/***/domparser.h:14: error: type/value misma
我正在为 Qt 中的 REST API 创建某种路由器,但在将函数指针插入 QMap 时遇到了问题。 我有课IModule其他模块是从中派生出来的。IModule.h的重要线路是 typedef QB
我是一名优秀的程序员,十分优秀!