[][src]Struct qt_core::q_set_of_q_abstract_state::Iterator

#[repr(C)]
pub struct Iterator { /* fields omitted */ }

The QSet::iterator class provides an STL-style non-const iterator for QSet.

C++ class: QSet<QAbstractState*>::iterator.

C++ documentation:

The QSet::iterator class provides an STL-style non-const iterator for QSet.

QSet features both STL-style iterators and Java-style iterators. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.

QSet<T>::iterator allows you to iterate over a QSet and to remove items (using QSet::erase()) while you iterate. (QSet doesn't let you modify a value through an iterator, because that would potentially require moving the value in the internal hash table used by QSet.) If you want to iterate over a const QSet, you should use QSet::const_iterator. It is generally good practice to use QSet::const_iterator on a non-const QSet as well, unless you need to change the QSet through the iterator. Const iterators are slightly faster, and can improve code readability.

The default QSet::iterator constructor creates an uninitialized iterator. You must initialize it using a function like QSet::begin(), QSet::end(), or QSet::insert() before you can start iterating. Here's a typical loop that prints all the items stored in a set:

QSet<QString> set; set << "January" << "February" << ... << "December";

QSet<QString>::iterator i; for (i = set.begin(); i != set.end(); ++i) qDebug() << *i;

Here's a loop that removes certain items (all those that start with 'J') from a set while iterating:

QSet<QString> set; set << "January" << "February" << ... << "December";

QSet<QString>::iterator i = set.begin(); while (i != set.end()) { if ((*i).startsWith('J')) { i = set.erase(i); } else { ++i; } }

STL-style iterators can be used as arguments to generic algorithms. For example, here's how to find an item in the set using the qFind() algorithm:

QSet<QString> set; ... QSet<QString>::iterator it = qFind(set.begin(), set.end(), "Jeanette"); if (it != set.end()) cout << "Found Jeanette" << endl;

Multiple iterators can be used on the same set.

Warning: Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read Implicit sharing iterator problem.

Methods

impl Iterator[src]

pub unsafe fn copy_from(
    &mut self,
    o: impl CastInto<Ref<Iterator>>
) -> MutRef<Iterator>
[src]

Assigns other to this iterator.

Calls C++ function: QSet<QAbstractState*>::iterator& QSet<QAbstractState*>::iterator::operator=(const QSet<QAbstractState*>::iterator& o).

C++ documentation:

Assigns other to this iterator.

pub unsafe fn dec_postfix(&mut self, arg1: c_int) -> CppBox<Iterator>[src]

This is an overloaded function.

Calls C++ function: QSet<QAbstractState*>::iterator QSet<QAbstractState*>::iterator::operator--(int arg1).

C++ documentation:

This is an overloaded function.

The postfix -- operator (i--) makes the preceding item current and returns an iterator pointing to the previously current item.

pub unsafe fn inc_postfix(&mut self, arg1: c_int) -> CppBox<Iterator>[src]

This is an overloaded function.

Calls C++ function: QSet<QAbstractState*>::iterator QSet<QAbstractState*>::iterator::operator++(int arg1).

C++ documentation:

This is an overloaded function.

The postfix ++ operator (i++) advances the iterator to the next item in the hash and returns an iterator to the previously current item.

pub unsafe fn new() -> CppBox<Iterator>[src]

Constructs an uninitialized iterator.

Calls C++ function: [constructor] void QSet<QAbstractState*>::iterator::iterator().

C++ documentation:

Constructs an uninitialized iterator.

Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.

See also QSet::begin() and QSet::end().

pub unsafe fn new_copy(o: impl CastInto<Ref<Iterator>>) -> CppBox<Iterator>[src]

Calls C++ function: [constructor] void QSet<QAbstractState*>::iterator::iterator(const QSet<QAbstractState*>::iterator& o).

Trait Implementations

impl PartialEq<Ref<Iterator>> for Iterator[src]

fn eq(&self, o: &Ref<Iterator>) -> bool[src]

Returns true if other points to the same item as this iterator; otherwise returns false.

Calls C++ function: bool QSet<QAbstractState*>::iterator::operator==(const QSet<QAbstractState*>::iterator& o) const.

C++ documentation:

Returns true if other points to the same item as this iterator; otherwise returns false.

See also operator!=().

impl PartialEq<Ref<ConstIterator>> for Iterator[src]

fn eq(&self, o: &Ref<ConstIterator>) -> bool[src]

Returns true if other points to the same item as this iterator; otherwise returns false.

Calls C++ function: bool QSet<QAbstractState*>::iterator::operator==(const QSet<QAbstractState*>::const_iterator& o) const.

C++ documentation:

Returns true if other points to the same item as this iterator; otherwise returns false.

See also operator!=().

impl<'_> Add<i32> for &'_ Iterator[src]

type Output = CppBox<Iterator>

The resulting type after applying the + operator.

fn add(self, j: c_int) -> CppBox<Iterator>[src]

Returns an iterator to the item at j positions forward from this iterator. (If j is negative, the iterator goes backward.)

Calls C++ function: QSet<QAbstractState*>::iterator QSet<QAbstractState*>::iterator::operator+(int j) const.

C++ documentation:

Returns an iterator to the item at j positions forward from this iterator. (If j is negative, the iterator goes backward.)

This operation can be slow for large j values.

See also operator-().

impl<'_> Sub<i32> for &'_ Iterator[src]

type Output = CppBox<Iterator>

The resulting type after applying the - operator.

fn sub(self, j: c_int) -> CppBox<Iterator>[src]

Returns an iterator to the item at j positions backward from this iterator. (If j is negative, the iterator goes forward.)

Calls C++ function: QSet<QAbstractState*>::iterator QSet<QAbstractState*>::iterator::operator-(int j) const.

C++ documentation:

Returns an iterator to the item at j positions backward from this iterator. (If j is negative, the iterator goes forward.)

This operation can be slow for large j values.

See also operator+().

impl AddAssign<i32> for Iterator[src]

fn add_assign(&mut self, j: c_int)[src]

Advances the iterator by j items. (If j is negative, the iterator goes backward.)

Calls C++ function: QSet<QAbstractState*>::iterator& QSet<QAbstractState*>::iterator::operator+=(int j).

C++ documentation:

Advances the iterator by j items. (If j is negative, the iterator goes backward.)

See also operator-=() and operator+().

impl SubAssign<i32> for Iterator[src]

fn sub_assign(&mut self, j: c_int)[src]

Makes the iterator go back by j items. (If j is negative, the iterator goes forward.)

Calls C++ function: QSet<QAbstractState*>::iterator& QSet<QAbstractState*>::iterator::operator-=(int j).

C++ documentation:

Makes the iterator go back by j items. (If j is negative, the iterator goes forward.)

See also operator+=() and operator-().

impl CppDeletable for Iterator[src]

unsafe fn delete(&mut self)[src]

The QSet::iterator class provides an STL-style non-const iterator for QSet.

Calls C++ function: [destructor] void QSet<QAbstractState*>::iterator::~iterator().

C++ documentation:

The QSet::iterator class provides an STL-style non-const iterator for QSet.

QSet features both STL-style iterators and Java-style iterators. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.

QSet<T>::iterator allows you to iterate over a QSet and to remove items (using QSet::erase()) while you iterate. (QSet doesn't let you modify a value through an iterator, because that would potentially require moving the value in the internal hash table used by QSet.) If you want to iterate over a const QSet, you should use QSet::const_iterator. It is generally good practice to use QSet::const_iterator on a non-const QSet as well, unless you need to change the QSet through the iterator. Const iterators are slightly faster, and can improve code readability.

The default QSet::iterator constructor creates an uninitialized iterator. You must initialize it using a function like QSet::begin(), QSet::end(), or QSet::insert() before you can start iterating. Here's a typical loop that prints all the items stored in a set:

QSet<QString> set; set << "January" << "February" << ... << "December";

QSet<QString>::iterator i; for (i = set.begin(); i != set.end(); ++i) qDebug() << *i;

Here's a loop that removes certain items (all those that start with 'J') from a set while iterating:

QSet<QString> set; set << "January" << "February" << ... << "December";

QSet<QString>::iterator i = set.begin(); while (i != set.end()) { if ((*i).startsWith('J')) { i = set.erase(i); } else { ++i; } }

STL-style iterators can be used as arguments to generic algorithms. For example, here's how to find an item in the set using the qFind() algorithm:

QSet<QString> set; ... QSet<QString>::iterator it = qFind(set.begin(), set.end(), "Jeanette"); if (it != set.end()) cout << "Found Jeanette" << endl;

Multiple iterators can be used on the same set.

Warning: Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read Implicit sharing iterator problem.

impl<'_> Decrement for &'_ mut Iterator[src]

type Output = MutRef<Iterator>

Output type.

fn dec(self) -> MutRef<Iterator>[src]

The prefix -- operator (--i) makes the preceding item current and returns an iterator pointing to the new current item.

Calls C++ function: QSet<QAbstractState*>::iterator& QSet<QAbstractState*>::iterator::operator--().

C++ documentation:

The prefix -- operator (--i) makes the preceding item current and returns an iterator pointing to the new current item.

Calling this function on QHash::begin() leads to undefined results.

See also operator++().

impl<'_> Increment for &'_ mut Iterator[src]

type Output = MutRef<Iterator>

Output type.

fn inc(self) -> MutRef<Iterator>[src]

The prefix ++ operator (++i) advances the iterator to the next item in the hash and returns an iterator to the new current item.

Calls C++ function: QSet<QAbstractState*>::iterator& QSet<QAbstractState*>::iterator::operator++().

C++ documentation:

The prefix ++ operator (++i) advances the iterator to the next item in the hash and returns an iterator to the new current item.

Calling this function on QHash::end() leads to undefined results.

See also operator--().

Auto Trait Implementations

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> StaticUpcast<T> for T[src]

impl<T, U> CastInto<U> for T where
    U: CastFrom<T>, 
[src]