qt翻译-----QMutableVectorIterator Class Reference

QMutableVectorIterator Class Reference
该类提供一个java风格的非常量的迭代器为QVectorQStack
#include <QMutableVectorIterator>
公共函数:

QMutableVectorIterator
 ( QVector<T> & vector )
~QMutableVectorIterator  ()
bool
findNext  ( const T & value )
bool
findPrevious  ( const T & value )
bool
hasNext  () const
bool
hasPrevious  () const
void
insert  ( const T & value )
T &
next  ()
T &
peekNext  () const
T &
peekPrevious  () const
T &
previous  ()
void
remove  ()
void
setValue  ( const T & value ) const
void
toBack  ()
void
toFront  ()
const T &
value  () const
T &
value  ()
QMutableVectorIterator &
operator=  ( QVector<T> & vector )
详细描述:
详细描述:
QVector java 风格的和 stl 风格的迭代器。 Java 风格的迭代器是更高水平的容易使用。在另一方面,他们有轻微的低效率。
使用迭代器的一个选择是使用索引位置。大多数 QVector 成员函数把索引作为他们的参数,使得不适用迭代器的情况下,进出、插入、移除项目成为可能。
QVectorlterator<T> 允许你来迭代一个 QVector<T>( 或者一个 QStack<T>) 。如果你想修改矢量当你迭代它时,使用 QMutableVectorlerator<T> 代替。
QVectorlterator 构造器以 QVector 为依据。构造后,迭代器被定为在 vector 的开始。这是怎样循序的迭代所有的元素:
QVector<float> vector;
      
 ...
      
 QVectorIterator<float> i(vector);
      
 while (i.hasNext())
      
     qDebug() << i.next();
      
next ()函数返回 vector 里的下一个项目并且前进迭代器。不像 stl 风格的迭代器, java 风格的迭代器定位在项目之间而不是在项目上。第一次调用 next ()前进迭代器到第一和第二个项目之间,返回第一个项目。第二次调用 next ()前进 iterator 到第二和第三个项目之间,返回第二项目,等等。
下面是逆序迭代元素:
QVectorIterator<float> i(vector);
      
 i.toBack();
      
 while (i.hasPrevious())
      
     qDebug() << i.previous();
      
如果你想找到一个特别值的所有的出现,使用findNext()或者findPrevious()在一个循环中。
如果你想移除项目,使用 remove ()。如果你想修改某个项目的值,使用 setValue ()。如果你想插入一个新的项目在 vector ,使用 insert ()
例子:
QMutableVectorIterator<int> i(vector);
      
 while (i.hasNext()) {
      
     int val = i.next();
      
     if (val < 0) {
      
         i.setValue(-val);
      
     } else if (val == 0) {
      
         i.remove();
      
     }
      
 }
      
这个例子横穿一个 vector ,取代负数用他们的绝对值,消除零。
只用一个多重迭代器能是活跃的在被给的 vector 在任意时间。更多的,没有改变能被直接应用于 vector ,当迭代其实活跃的,因为这能使迭代器无效,导致无法预料的行为。
成员函数文件:

QMutableVectorIterator::QMutableVectorIterator ( QVector<T> & vector )

构建一个横穿 vector 的迭代器。该迭代器被设置在 vector 的前面。

QMutableVectorIterator::~QMutableVectorIterator ()

bool QMutableVectorIterator::findNext ( const T & value )

bool QMutableVectorIterator::findPrevious ( const T & value )

bool QMutableVectorIterator::hasNext () const

bool QMutableVectorIterator::hasPrevious () const

void QMutableVectorIterator::insert ( const T & value )

T & QMutableVectorIterator::next ()

T & QMutableVectorIterator::peekNext () const

返回下一个项目的参考,而不改变迭代器的位置。
调用这个函数在一个 iterator 定位在容器后面,将导致无法预料的结果。

T & QMutableVectorIterator::peekPrevious () const

T & QMutableVectorIterator::previous ()

void QMutableVectorIterator::remove ()

QMutableVectorIterator<int> i(vector);
     
 while (i.hasNext()) {
      
     int val = i.next();
      
     if (val < -32768 || val > 32767)
      
         i.remove();
      
 }
      

void QMutableVectorIterator::setValue ( const T & value ) const

QMutableVectorIterator<double> i(list);
     
 while (i.hasNext()) {
      
     double val = i.next();
      
     i.setValue(sqrt(val));
      
 }
      

void QMutableVectorIterator::toBack ()

void QMutableVectorIterator::toFront ()

const T & QMutableVectorIterator::value () const

返回跳过使用横穿函数的上一个项目的值。
再调用 next ()或者 findNext ()函数后, value ()是等同于 peekPrevious ()。
在调用 previous ()或者 findPrevious ()后, value ()是等同于 peekNext ()。

T & QMutableVectorIterator::value ()

QMutableVectorIterator & QMutableVectorIterator::operator= ( QVector<T> &vector )

 

你可能感兴趣的:(职场,Class,reference,休闲)