- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在核心上有以下堆栈跟踪:
#1 0x..... in raise()
#2 0x..... in abort()
#3 0x..... in xehInterpretSavedSigaction()
#4 0x..... in xehExceptionHandler()
#5 <signal handler called>
#6 0x..... in QMap<int, myClass#1>::freeData(QMapData*) ()
#7 0x..... in myClass#2::myClass#2Method()
#8 0x..... so on and so forth
使用 QMap 的代码如下所示:
foreach (myClass::sturct1 conn, myClass3->getMap())
{
if (conn == x)
{
return conn;
}
}
foreach 行是使用 getter 方法检索 QMap 的地方。有人知道 QMap::freeData() 的作用吗?我在互联网上任何地方都能找到的唯一引用资料是实际的 QMap.h 源代码。看起来 QMap 析构函数中使用了该方法。方法名称让我相信它正在释放数据。无论如何,我认为如果我对 freeData() 了解更多,我可能能够弄清楚并修复这个核心。
最佳答案
您无需了解有关 freeData
的任何信息。 myClass3
中的 map 字段内容已损坏,getMap()
浅拷贝已损坏的 map 实例。 freeData
工作正常,只要它使用的对象没有被错误代码损坏。
由于您正尝试从多个线程访问数据,因此您必须:
从每个线程中共享数据结构的单独实例进行操作。关键是:您必须在“拥有”源的线程中创建一个拷贝。然后您可以将拷贝传递给另一个线程并在那里使用它。参见 this answer例如代码。
使用互斥量保护对数据结构的访问。
关于c++ - QMap::freeData() 上的 Qt 核心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26044454/
我经常看到这样的代码: 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
我是一名优秀的程序员,十分优秀!