我有问题。QVector不追加!
出于某种原因,尽管我在为QString有一个值,做追加()到QVector不工作,我最终仍然只是一个空载体。
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;
}
}
}
这是源文件中的相关代码片段。第一COUT返回一个URL,所述第二URL返回10(其根据单证指的QVariant包含字符串,这是正确的,第三个COUT正确输出的字符串。然后,最后一个不输出字符串。注意的存在所有我的编程常识告诉我,矢量现在应该填充,但在其大小窥视显示大小为0,这意味着QString没有放入。
该Urls QVector是部分的结构:。
结构回购{
QString的名称; //名称资源库的
QVector <QString>
的网址,服务器或镜像列表中的地址//
};
QString名称是早期代码的一部分,可以正常工作,并且与此问题无关。
我想不出为什么append()或push_back()不起作用。
只是一个愚蠢的doubt..For'append'您使用指数作为'j'和'cout'你正在使用'i'。这是打算吗? – Naveen 2011-05-05 04:47:07