小编use*_*823的帖子

内部移动std :: vector元素和QVector

有两个向量std :: vectorQVector.我们必须检查插入时"移位"元素的方式.(用五个元素构造两个向量并插入零元素)我有这个代码:

#include <QVector>
#include <QTextStream>

struct MoveTest
{
    int i;

    MoveTest()                       {}
    MoveTest(const MoveTest& other)  {QTextStream(stdout) << "constr copy" << endl;}
    MoveTest(MoveTest &&other)       {QTextStream(stdout) << "constr move" << endl;}
    ~MoveTest()                      {}

    inline MoveTest&    operator=   (const MoveTest& other) {QTextStream(stdout) << "copy" << endl;}
    inline MoveTest&    operator=   (MoveTest &&other)      {QTextStream(stdout) << "move" << endl;}
};

int main(int argc, char *argv[])
{
    QTextStream(stdout) << "std::move:" << endl;
    MoveTest t1;
    MoveTest t2(std::move(t1));
    t1 = std::move(t2);

    QTextStream(stdout) << "QVector:" …
Run Code Online (Sandbox Code Playgroud)

c++ qt gcc stl c++11

7
推荐指数
1
解决办法
2231
查看次数

标签 统计

c++ ×1

c++11 ×1

gcc ×1

qt ×1

stl ×1