QVector

一 构造函数 

  QVector()  --  构造一个空的QVector

  QVector(int size)  --指定初始元素个数,每个元素初始化为默认构造值  

  QVector(int size, const T & value)  -- 指定元素的个数,每个元素的初始值为value

  QVector(std::initializer_list<T> args)

 

二 存取 

  1. const T & QVector::at ( int i ) const;   

      返回指写索引位置处的元素,索引i的取值范围是[0, size() )

       2. T& QVector::operator[ ] (int i)

   支持[ ]索引方式 例:  

       QVector<double> vec(3) ;
       vec[0] = 1.0; 
       vec[1] = 2.0;         

      
    3. T& QVector::front()

             相当于STL中的 front() ,返回第一个元素。与const T & QVector::first() const的功能相同。

  4. T* QVector::data()

             返回QVector中的数据指针,这对于只接受C++数组指针参数的函数来说是很有用的。返回的指针在QVector未重新分配内存之前有效。

  5.  QVector<T> & QVector::operator<< ( const T & value )

            在尾部添加元素 

  6. void QVector::append ( const T & value )

   在尾部添加元素value

        7. void QVector::push_back(const T & value)

           等同于append(), 主要用来与STL兼容,同类的还有push_front(const T& value)

  8.void QVector::insert ( int i, const T & value )

            把值value插入到索引i指示的位置之前

三 删除 

  1. iterator QVector::erase ( iterator pos )

             删除迭代器指定位置的元素,返回的迭代器指向下一个元素 

  2. iterator QVector::erase ( iterator beginiterator end )

            删除从迭代器begin开始到end(不包括end)之间的元素,返回迭代器指向end 

  3. void QVector::remove ( int i )

           移除索引i指定位置的元素 

  4. void  QVector::remove(int i, int count)

  

在C++中,QVector是Qt框架提供的一个动态数组容器类,类似于C++标准库中的std::vector。QVector提供了一系列的成员函数来操作数组元素,包括添加、删除、查找等。 当我们需要将一个QVector对象从一个地方移动到另一个地方时,可以使用移动语义来提高性能。移动语义是C++11引入的特性,它允许对象的资源(如内存)在移动时被转移,而不是进行复制操作。 在C++中,移动语义通过右值引用(Rvalue reference)来实现。右值引用是一种新的引用类型,用于绑定到临时对象或将要销毁的对象。通过使用右值引用,我们可以将资源的所有权从一个对象转移到另一个对象,而不需要进行深拷贝。 对于QVector对象的移动操作,可以使用std::move函数来实现。std::move函数将一个左值转换为右值引用,从而实现资源的转移。具体的用法如下: ```cpp QVector<int> sourceVector; // 添加一些元素到sourceVector中 QVector<int> destinationVector = std::move(sourceVector); ``` 在上面的代码中,我们首先创建了一个sourceVector对象,并向其添加了一些元素。然后,通过std::move函数将sourceVector对象移动到destinationVector对象中。在移动之后,sourceVector对象将变为空,而destinationVector对象将拥有sourceVector中的元素。 需要注意的是,移动操作后,被移动的对象的状态是不确定的,我们不能再对其进行访问或修改。如果需要继续使用被移动的对象,可以在移动之后重新赋值给它。 总结一下,使用移动语义可以提高对象的性能,特别是对于大型容器类对象的移动操作。通过使用std::move函数,我们可以将一个QVector对象从一个地方移动到另一个地方,而不需要进行复制操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值