gpt4 book ai didi

c++ - 指向 C++11 foreach 循环中链接的链接

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:16 24 4
gpt4 key购买 nike

假设我有以下代码(C++/Qt):

QHash<QString, AppInfo*> links;
QList<AppInfo> apps = m_apps.values();
for (const AppInfo &app : apps) {
// Doing something with #app variable...
links.insert(app.other._appFile, &app);
}

m_appsQHash<QString, AppInfo> , 和 app.other._appFile是文件的完整路径。

问题来了:是构造 &app在倒数第二行正确吗?我需要一个指向 AppInfo 对象的非常量指针,以便稍后修改它。是否&app链接到 const AppInfo&AppInfo直接反对?如果我尝试修改获得的 AppInfo*,应用程序不会崩溃目的?谢谢。

抱歉,英语不是我的母语,我无法完美地表述问题标题。请代替我来做。

最佳答案

linksQHash<QString, AppInfo*> , 不是 QHash<QString, const AppInfo*> , 因此由

links.insert(app.other._appFile, &app);

您正在启动从 const AppInfo* 的隐式转换至 AppInfo*这将导致编译器错误,而不是运行时错误(崩溃)。一个明显的解决方案是不使用 const 遍历 map

for (AppInfo &app : apps) 
{

}

关于c++ - 指向 C++11 foreach 循环中链接的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17069808/

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