编辑 QVector

Posted

技术标签:

【中文标题】编辑 QVector【英文标题】:Editing a QVector with 【发布时间】:2014-01-16 00:31:34 【问题描述】:

所以我正在尝试创建一个简单的程序,允许我使用随机函数来操作向量,但我觉得我忘记了一些相当重要和基本的东西 请随时查看我发布的代码并让我知道解决方案是什么。我收到的错误是 myvec 是“索引超出范围,这仅意味着在我创建的插入方法中推回不起作用。不知道为什么,我还是个新手。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QVector>

QVector<QString> myvec;

void insert(QVector<QString> vec);

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

    ui->setupUi(this);


MainWindow::~MainWindow()

    delete ui;


void MainWindow::insert(QVector<QString> vec)
    vec.push_back("Hello World");


void MainWindow::on_pushButton_clicked()

    insert(myvec);
    ui->label->setText(myvec.at(0));

【问题讨论】:

【参考方案1】:

你的功能

void MainWindow::insert(QVector<QString> vec)
    vec.push_back("Hello World");

采用向量按值。这意味着当它被调用时,参数被 复制 以在函数中使用,并且当您在那里修改值时,它不会反映在函数调用的实例 outside (因为修改是在copy上完成的)。

您希望通过引用传递向量,这样它就不会被复制,并且对仍然存在于函数调用之外的对象进行修改。这是通过在签名中添加&amp; 来完成的:

void MainWindow::insert(QVector<QString> & vec)
    vec.push_back("Hello World");

请注意,您也可以通过 const 引用,这通常是出于效率原因。这意味着只有一个引用被传递给函数,但不允许在函数体内修改实例。

【讨论】:

以上是关于编辑 QVector的主要内容,如果未能解决你的问题,请参考以下文章

无人编辑,人工智能编辑,AI编辑机器人-资讯频道编辑

FlashFXP的代码编辑和文本编辑

vue 表格数据编辑,点击取消或者完成按钮后,关闭编辑状态没有及时生效

你好,我看你关于jtable的编辑列改为非编辑列, 你知道jqgrid的编辑列如何停止编辑吗?

如何在Markdown编辑器中简单编辑数学公式

编辑PDF用什么工具比较合适?怎样使用PDF编辑工具去编辑PDF文件?