QVector not appending!
QVector not appending!
我遇到一个问题。
由于某种原因,尽管我在QString中有一个值,但对QVector执行append()不能工作,最终我仍然只有一个空向量。
QList<QVariant> listServers = mapRepos.values ( "servers" ); // Finally, the last data structure, for holding server lists.
// Populate the repository information with the server lists.
for ( int i = 0; i < listServers.size(); ++i ) {
for ( int j = 0; j < listServers.at ( i ).toList().size(); ++j ) {
std::cout << "On file: " << listServers.at ( i ).toList().at ( j ).toString().toStdString() << std::endl;
std::cout << "Type #: " << listServers.at ( i ).toList().at ( j ).type() << std::endl;
buffer3 = listServers.at ( i ).toList().at ( j ).toString();
std::cout << "In buffer: (" << buffer3.toStdString() << ")" << std::endl;
arrayRepos.value ( j ).urls.append ( buffer3 );
std::cout << "In memory: " << arrayRepos.value ( i ).urls.value ( i ).toStdString() << std::endl;
}
}
}
这是源文件中相关的代码片段。第一个返回一个URL,第二个返回10(根据文档,这意味着QVariant包含一个字符串,这是正确的)。第三个cout正确输出字符串。然后,最后一个不输出字符串。注意这里的追加行。我所有的编程常识都告诉我现在应该填充vector,但是偷看一下它的大小,显示大小为0,这意味着没有放入QString。
url QVector是struct的一部分:
struct repo {
QString名称;//存储库名称。
QVector <QString>
url;//服务器地址或镜像列表。
QString name是早期代码的一部分,它可以正常工作,与此问题无关。
我想不出append()或push_back()不能工作的任何理由。
arrayRepos
的类型是什么,我猜它是某种Qt容器(QVector, QList等)。在这种情况下,当您需要引用时,arrayRepos.value (j)
返回repo
结构的副本,因此需要使用operator[]
或at(j)
成员函数。
你能把arrayRepos.value ( j ).urls.append ( buffer3 );
代码分解成单独的语句吗?
:
QVector<QString> tmpurls = arrayRepos.value ( j ).urls;
tmpurls.append ( buffer3 );
相关文章:
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 使用JsonCpp将数据返回到带有pybind11的python会在python调用中产生Symbol not foun
- OpenCV Android C++ imwrite not found
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 使用单词"not"作为C ++类的名称会导致VS2019错误
- 错误"Could not find Boost"(缺少:上下文标头)
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- Is !NaN not a NaN?
- 为什么我会" void value not ignored as it ought to be"?
- 解决"ld: library not found for -ltensorflow_framework.2.3.0"
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- Directx 11 - CompileFromFile() is not compiling
- 方法错误"not all control paths return a value"和方法不返回值
- Centos7 g++ "to_string is not in a member of std"
- 将系数存储在头文件的数组中("does not name a type"错误)
- QGraphicsItems not showing up QGraphicsScene
- 在调试模式下引发C++ "deque iterator not dereferencable"异常
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- QVector not appending!