std和qt向量中push_back之间的区别

时间:2018-06-25 18:38:20

标签: c++ qt vector stdvector qvector

问题真的很简单。我有一个代码:

options

第一个版本(qt)给我一个编译错误,而std的版本工作正常。我已经看过std :: vector源代码,并且我想(或多或少)了解那里发生了什么,但是我找不到QVector的源代码(我已经看过Qt repository)。

问题是:#include <string> #include <memory> #include <vector> #include <boost/variant.hpp> #include <QVector> int main() { QVector<boost::variant<std::unique_ptr<std::string>, int>> qt_vector; std::string* qt_test = new std::string; qt_vector.push_back(std::unique_ptr<std::string>(qt_test)); std::vector<boost::variant<std::unique_ptr<std::string>, int>> std_vector; std::string* std_test = new std::string; std_vector.push_back(std::unique_ptr<std::string>(std_test)); } std::vector::push_back有什么区别?在这种情况下,我可以使用QVector::push_back而不是QVector来做什么。

P.S。。我想要一个std::vector的向量,这个示例与我在主代码中尝试做的非常相似。我尝试使用boost::variant<std::unique_ptr<std::string>, int>,因为在我的应用程序的所有其他部分中,我还使用了Qt容器

PS 。错误消息是:

QVector

PS 此问题与this one不同,因为它询问特定于的示例,并提供了由上述问题引起的问题的上下文题。我还提供了一个具体示例,该示例对于试图了解问题的人可能有用。

0 个答案:

没有答案