QList在队尾添加元素,在队头取元素并移除头部
时间: 2024-03-26 10:42:18 浏览: 62
可以使用QList的`append()`方法在队尾添加元素,使用`takeFirst()`方法在队头取元素并移除头部,例如:
```
QList<int> list;
list.append(1); // [1]
list.append(2); // [1,2]
list.append(3); // [1,2,3]
int firstElement = list.takeFirst(); // firstElement的值为1,list变为[2,3]
```
相关问题
QList的Push_back插入的元素在队头还是队尾
`QList`的`push_back()`方法是`std::vector`的一个别名,实际上并不是`QList`的成员函数,它是在`QList`的头文件中通过`using std::vector::push_back`语句引入的。因此,`push_back()`方法并不存在于`QList`中,而是存在于`std::vector`中。
在`std::vector`中,`push_back()`方法是在队尾插入元素的,而不是在队头插入。如果你想在队头插入元素,可以使用`push_front()`方法,例如:
```
QList<int> list;
list.push_back(1); // [1]
list.push_back(2); // [1,2]
list.push_front(3); // [3,1,2]
```
QList怎么添加元素
QList 提供了多种添加元素的方法,下面是其中几种常用的方法:
1. append():在列表末尾添加一个元素。
```cpp
QList<int> list;
list.append(1);
list.append(2);
list.append(3);
```
2. prepend():在列表开头添加一个元素。
```cpp
QList<int> list;
list.prepend(3);
list.prepend(2);
list.prepend(1);
```
3. insert():在指定位置插入一个元素。
```cpp
QList<int> list;
list.insert(0, 1);
list.insert(1, 2);
list.insert(2, 3);
```
4. operator<<():使用流操作符添加一个元素。
```cpp
QList<int> list;
list << 1 << 2 << 3;
```
注意:对于自定义类型的元素,需要实现拷贝构造函数和赋值运算符才能被添加到 QList 中。同时,建议使用 QList 的模板类型实参而不是裸类型,以避免编译器错误和类型转换问题。例如:
```cpp
class MyClass {
public:
MyClass() {}
MyClass(const MyClass& other) {}
~MyClass() {}
MyClass& operator=(const MyClass& other) { return *this; }
};
QList<MyClass> list; // 推荐
// QList<MyClass*> list; // 不推荐
```
阅读全文