Struct qt_core::q_set_of_q_abstract_state::Iterator
source · #[repr(C)]pub struct Iterator { /* private fields */ }
Expand description
The QSet::iterator class provides an STL-style non-const iterator for QSet.
C++ class: QSet<QAbstractState*>::iterator
.
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.
Implementations§
source§impl Iterator
impl Iterator
sourcepub unsafe fn add_assign(&self, j: c_int) -> Ref<Iterator>
pub unsafe fn add_assign(&self, j: c_int) -> Ref<Iterator>
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)
.
Advances the iterator by j items. (If j is negative, the iterator goes backward.)
See also operator-=() and operator+().
sourcepub unsafe fn copy_from(&self, o: impl CastInto<Ref<Iterator>>) -> Ref<Iterator>
pub unsafe fn copy_from(&self, o: impl CastInto<Ref<Iterator>>) -> Ref<Iterator>
Assigns other to this iterator.
Calls C++ function: QSet<QAbstractState*>::iterator& QSet<QAbstractState*>::iterator::operator=(const QSet<QAbstractState*>::iterator& o)
.
Assigns other to this iterator.
sourcepub unsafe fn dec(&self) -> Ref<Iterator>
pub unsafe fn dec(&self) -> Ref<Iterator>
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--()
.
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++().
sourcepub unsafe fn dec_postfix(&self, arg1: c_int) -> CppBox<Iterator>
pub unsafe fn dec_postfix(&self, arg1: c_int) -> CppBox<Iterator>
This is an overloaded function.
Calls C++ function: QSet<QAbstractState*>::iterator QSet<QAbstractState*>::iterator::operator--(int arg1)
.
This is an overloaded function.
The postfix -- operator (i--
) makes the preceding item current and returns an iterator pointing to the previously current item.
sourcepub unsafe fn inc(&self) -> Ref<Iterator>
pub unsafe fn inc(&self) -> Ref<Iterator>
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++()
.
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--().
sourcepub unsafe fn inc_postfix(&self, arg1: c_int) -> CppBox<Iterator>
pub unsafe fn inc_postfix(&self, arg1: c_int) -> CppBox<Iterator>
This is an overloaded function.
Calls C++ function: QSet<QAbstractState*>::iterator QSet<QAbstractState*>::iterator::operator++(int arg1)
.
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.
sourcepub unsafe fn indirection(&self) -> *const *mut QAbstractState
pub unsafe fn indirection(&self) -> *const *mut QAbstractState
Returns a modifiable reference to the current item's value.
Calls C++ function: const QAbstractState*& QSet<QAbstractState*>::iterator::operator*() const
.
sourcepub unsafe fn new() -> CppBox<Iterator>
pub unsafe fn new() -> CppBox<Iterator>
Constructs an uninitialized iterator.
Calls C++ function: [constructor] void QSet<QAbstractState*>::iterator::iterator()
.
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().
sourcepub unsafe fn new_copy(o: impl CastInto<Ref<Iterator>>) -> CppBox<Iterator>
pub unsafe fn new_copy(o: impl CastInto<Ref<Iterator>>) -> CppBox<Iterator>
Calls C++ function: [constructor] void QSet<QAbstractState*>::iterator::iterator(const QSet<QAbstractState*>::iterator& o)
.
sourcepub unsafe fn struct_deref(&self) -> *const *mut QAbstractState
pub unsafe fn struct_deref(&self) -> *const *mut QAbstractState
Returns a pointer to the current item's value.
Calls C++ function: const QAbstractState** QSet<QAbstractState*>::iterator::operator->() const
.
Returns a pointer to the current item’s value.
See also value().
sourcepub unsafe fn sub_assign(&self, j: c_int) -> Ref<Iterator>
pub unsafe fn sub_assign(&self, j: c_int) -> Ref<Iterator>
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)
.
Makes the iterator go back by j items. (If j is negative, the iterator goes forward.)
See also operator+=() and operator-().
Trait Implementations§
source§impl Add<i32> for &Iterator
impl Add<i32> for &Iterator
source§fn add(self, j: c_int) -> CppBox<Iterator>
fn add(self, j: c_int) -> CppBox<Iterator>
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
.
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-().
source§impl CppDeletable for Iterator
impl CppDeletable for Iterator
source§unsafe fn delete(&self)
unsafe fn delete(&self)
The QSet::iterator class provides an STL-style non-const iterator for QSet.
Calls C++ function: [destructor] void QSet<QAbstractState*>::iterator::~iterator()
.
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.
source§impl Decrement for Iterator
impl Decrement for Iterator
source§unsafe fn dec(&self) -> Ref<Iterator>
unsafe fn dec(&self) -> Ref<Iterator>
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--()
.
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++().
source§impl Increment for Iterator
impl Increment for Iterator
source§unsafe fn inc(&self) -> Ref<Iterator>
unsafe fn inc(&self) -> Ref<Iterator>
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++()
.
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--().
source§impl Indirection for Iterator
impl Indirection for Iterator
source§unsafe fn indirection(&self) -> *const *mut QAbstractState
unsafe fn indirection(&self) -> *const *mut QAbstractState
Returns a modifiable reference to the current item's value.
Calls C++ function: const QAbstractState*& QSet<QAbstractState*>::iterator::operator*() const
.
§type Output = *const *mut QAbstractState
type Output = *const *mut QAbstractState
source§impl PartialEq<Ref<ConstIterator>> for Iterator
impl PartialEq<Ref<ConstIterator>> for Iterator
source§fn eq(&self, o: &Ref<ConstIterator>) -> bool
fn eq(&self, o: &Ref<ConstIterator>) -> bool
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
.
Returns true
if other points to the same item as this iterator; otherwise returns false
.
See also operator!=().
source§impl PartialEq<Ref<Iterator>> for Iterator
impl PartialEq<Ref<Iterator>> for Iterator
source§fn eq(&self, o: &Ref<Iterator>) -> bool
fn eq(&self, o: &Ref<Iterator>) -> bool
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
.
Returns true
if other points to the same item as this iterator; otherwise returns false
.
See also operator!=().
source§impl Sub<i32> for &Iterator
impl Sub<i32> for &Iterator
source§fn sub(self, j: c_int) -> CppBox<Iterator>
fn sub(self, j: c_int) -> CppBox<Iterator>
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
.
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+().