qt push_back
时间: 2023-12-07 21:05:28 浏览: 29
在 Qt 中,`push_back` 是 std::vector 的一个成员函数,用于将元素添加到向量的末尾。为了使用 `push_back`,你需要创建一个 `std::vector` 对象,并使用 `push_back` 函数来添加元素。
下面是一个使用 `push_back` 函数的示例:
```cpp
#include <vector>
#include <iostream>
int main()
{
std::vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
for (int i = 0; i < vec.size(); i++)
{
std::cout << vec[i] << " ";
}
return 0;
}
```
输出:
```
1 2 3
```
在上面的示例中,我们创建了一个 `std::vector` 对象 `vec`,并使用 `push_back` 函数添加了三个整数。最后,我们使用一个 for 循环遍历向量中的元素,并将其打印到控制台中。
相关问题
QT push_back
在 Qt 中,`push_back` 不是一个常用的函数,因为它是 C++ STL 中 `vector` 类的函数。在 Qt 中,通常使用 `QList` 或 `QVector` 来替代 `vector`,这两个类都提供了 `append` 函数来添加元素到列表中。
如果你仍然想使用 `push_back` 函数,你可以将 `QList` 或 `QVector` 转换为其底层的 `std::vector` 对象,然后调用 `push_back` 函数。例如:
```cpp
#include <QList>
#include <vector>
int main()
{
QList<int> list = {1, 2, 3};
std::vector<int>& vec = *reinterpret_cast<std::vector<int>*>(&list);
vec.push_back(4);
return 0;
}
```
但是需要注意的是,这种转换并不是官方支持或建议的方法,因此使用时需要谨慎。
C:\Users\22836\Desktop\QT\untitled1\mainwindow.cpp:27: error: No matching member function for call to 'push_back'
这个错误是因为你使用了错误的语法来调用push_back函数。
在C++中,push_back是一个成员函数,需要使用成员访问运算符(`.`)而不是使用函数调用运算符(`()`)来调用它。
修改代码如下:
```cpp
connect(ui->checkBox, &QCheckBox::stateChanged, [=](int state){
qDebug() << state << endl;
if (state == 2) {
strList.push_back(this->ui->checkBox->text());
}
//state 2选中 0未选中
});
```
请确保你在代码中正确使用成员访问运算符(`.`)来调用类的成员函数。这样就能够正确地调用push_back函数将文本添加到strList中了。