- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图防止裸指针,防止内存泄漏等。我还想将 int
映射到 INuiSensor* .由于我也在使用 Qt,所以我尝试使用 QMap
来执行此操作,但 QMap 的源代码使这变得不可能:
template <class Key, class T>
Q_INLINE_TEMPLATE typename QMap<Key, T>::iterator QMap<Key, T>::insert(const Key &akey, const T &avalue)
{
detach();
Node *n = d->root();
Node *y = d->end();
Node *last = 0;
bool left = true;
while (n) {
y = n;
if (!qMapLessThanKey(n->key, akey)) {
last = n;
left = true;
n = n->leftNode();
} else {
left = false;
n = n->rightNode();
}
}
if (last && !qMapLessThanKey(akey, last->key)) {
last->value = avalue;
return iterator(last);
}
Node *z = d->createNode(akey, avalue, y, left);
return iterator(z);
}
行:
last->value = avalue;
是造成问题的原因:您不能直接在 unique_ptr 上使用 = 运算符。所以现在我很困惑下一步该做什么。是否可以以其他方式使用 QMap 和 unique_ptr ?出于某种原因,使用 QMap 和 unique_ptr 的整个想法是否愚蠢?在使用 QMap 的同时如何防止使用裸指针?
最佳答案
使用 Qt 容器,你应该使用 Qt 智能指针实现。有关此线程中不同实现的更多信息。
What C++ Smart Pointer Implementations are available?
如前所述,您可以使用 QSharedPointer。
关于c++ - QMap 和 std::unique_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16263117/
我经常看到这样的代码: 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
我是一名优秀的程序员,十分优秀!