Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qiterator.h
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QITERATOR_H
6
#
define
QITERATOR_H
7
8
#
include
<
QtCore
/
qglobal
.
h
>
9
#
include
<
QtCore
/
qcontainertools_impl
.
h
>
10
11
#
ifdef
__cpp_lib_ranges
12
#
include
<
ranges
>
13
#
endif
14
15
QT_BEGIN_NAMESPACE
16
17
#
if
!
defined
(
QT_NO_JAVA_STYLE_ITERATORS
)
18
19
#
ifdef
Q_QDOC
20
#
define
Q_DISABLE_BACKWARD_ITERATOR
21
#
else
22
#
define
Q_DISABLE_BACKWARD_ITERATOR
23
template
<
typename
It
=
decltype
(
i
)
,
QtPrivate
::
IfIteratorCanMoveBackwards
<
It
>
=
true
>
24
#
endif
25
26
#
define
Q_DECLARE_SEQUENTIAL_ITERATOR
(
C
)
template
27
28
<
class
T
>
class
29
Q
##
C
##
Iterator
\
30
{
31
typedef
typename
Q
##
C
<
T
>
::
const_iterator
const_iterator
;
32
Q
##
C
<
T
>
c
;
33
const_iterator
i
;
public
34
:
35
inline
Q
##
C
##
Iterator
(
const
Q
##
C
<
T
>
&
container
)
36
:
c
(
container
)
,
i
(
c
.
constBegin
(
)
)
{
}
37
inline
Q
##
C
##
Iterator
&
operator
=
(
const
Q
##
C
<
T
>
&
container
)
38
{
c
=
container
;
i
=
c
.
constBegin
(
)
;
return
*
this
;
}
39
inline
void
toFront
(
)
{
i
=
c
.
constBegin
(
)
;
}
40
inline
void
toBack
(
)
{
i
=
c
.
constEnd
(
)
;
}
41
inline
bool
hasNext
(
)
const
{
return
i
!=
c
.
constEnd
(
)
;
}
42
inline
const
T
&
next
(
)
{
return
*
i
++
;
}
43
inline
const
T
&
peekNext
(
)
const
{
return
*
i
;
}
44
Q_DISABLE_BACKWARD_ITERATOR
45
inline
bool
hasPrevious
(
)
const
{
return
i
!=
c
.
constBegin
(
)
;
}
46
Q_DISABLE_BACKWARD_ITERATOR
47
inline
const
T
&
previous
(
)
{
return
*
--
i
;
}
48
Q_DISABLE_BACKWARD_ITERATOR
49
inline
const
T
&
peekPrevious
(
)
const
{
const_iterator
p
=
i
;
return
*
--
p
;
}
50
inline
bool
findNext
(
const
T
&
t
)
51
{
while
(
i
!=
c
.
constEnd
(
)
)
if
(
*
i
++
==
t
)
return
true
;
return
false
;
}
52
Q_DISABLE_BACKWARD_ITERATOR
53
inline
bool
findPrevious
(
const
T
&
t
)
54
{
while
(
i
!=
c
.
constBegin
(
)
)
if
(
*
(
--
i
)
==
t
)
return
true
;
55
return
false
;
}
\
56
}
;
57
58
#
define
Q_DECLARE_MUTABLE_SEQUENTIAL_ITERATOR
(
C
)
template
59
60
<
class
T
>
class
61
QMutable
##
C
##
Iterator
\
62
{
63
typedef
typename
Q
##
C
<
T
>
::
iterator
iterator
;
64
typedef
typename
Q
##
C
<
T
>
::
const_iterator
const_iterator
;
65
Q
##
C
<
T
>
*
c
;
66
iterator
i
,
n
;
67
inline
bool
item_exists
(
)
const
{
return
const_iterator
(
n
)
!=
c
->
constEnd
(
)
;
}
public
68
:
69
inline
QMutable
##
C
##
Iterator
(
Q
##
C
<
T
>
&
container
)
70
:
c
(
&
container
)
71
{
i
=
c
->
begin
(
)
;
n
=
c
->
end
(
)
;
}
72
inline
QMutable
##
C
##
Iterator
&
operator
=
(
Q
##
C
<
T
>
&
container
)
73
{
c
=
&
container
;
i
=
c
->
begin
(
)
;
n
=
c
->
end
(
)
;
return
*
this
;
}
74
inline
void
toFront
(
)
{
i
=
c
->
begin
(
)
;
n
=
c
->
end
(
)
;
}
75
inline
void
toBack
(
)
{
i
=
c
->
end
(
)
;
n
=
i
;
}
76
inline
bool
hasNext
(
)
const
{
return
c
->
constEnd
(
)
!=
const_iterator
(
i
)
;
}
77
inline
T
&
next
(
)
{
n
=
i
++
;
return
*
n
;
}
78
inline
T
&
peekNext
(
)
const
{
return
*
i
;
}
79
Q_DISABLE_BACKWARD_ITERATOR
80
inline
bool
hasPrevious
(
)
const
{
return
c
->
constBegin
(
)
!=
const_iterator
(
i
)
;
}
81
Q_DISABLE_BACKWARD_ITERATOR
82
inline
T
&
previous
(
)
{
n
=
--
i
;
return
*
n
;
}
83
Q_DISABLE_BACKWARD_ITERATOR
84
inline
T
&
peekPrevious
(
)
const
{
iterator
p
=
i
;
return
*
--
p
;
}
85
inline
void
remove
(
)
86
{
if
(
c
->
constEnd
(
)
!=
const_iterator
(
n
)
)
{
i
=
c
->
erase
(
n
)
;
n
=
c
->
end
(
)
;
}
}
87
inline
void
setValue
(
const
T
&
t
)
const
{
if
(
c
->
constEnd
(
)
!=
const_iterator
(
n
)
)
*
n
=
t
;
}
88
inline
T
&
value
(
)
{
Q_ASSERT
(
item_exists
(
)
)
;
return
*
n
;
}
89
inline
const
T
&
value
(
)
const
{
Q_ASSERT
(
item_exists
(
)
)
;
return
*
n
;
}
90
inline
void
insert
(
const
T
&
t
)
{
n
=
i
=
c
->
insert
(
i
,
t
)
;
++
i
;
}
91
inline
bool
findNext
(
const
T
&
t
)
92
{
while
(
c
->
constEnd
(
)
!=
const_iterator
(
n
=
i
)
)
if
(
*
i
++
==
t
)
return
true
;
return
false
;
}
93
Q_DISABLE_BACKWARD_ITERATOR
94
inline
bool
findPrevious
(
const
T
&
t
)
95
{
while
(
c
->
constBegin
(
)
!=
const_iterator
(
i
)
)
if
(
*
(
n
=
--
i
)
==
t
)
return
true
;
96
n
=
c
->
end
(
)
;
return
false
;
}
\
97
}
;
98
99
#
define
Q_DECLARE_ASSOCIATIVE_ITERATOR
(
C
)
template
100
101
<
class
Key
,
class
T
>
class
102
Q
##
C
##
Iterator
\
103
{
104
typedef
typename
Q
##
C
<
Key
,
T
>
::
const_iterator
const_iterator
;
105
Q
##
C
<
Key
,
T
>
c
;
106
const_iterator
i
,
n
;
107
inline
bool
item_exists
(
)
const
{
return
n
!=
c
.
constEnd
(
)
;
}
public
108
:
109
typedef
const_iterator
Item
;
110
inline
Q
##
C
##
Iterator
(
const
Q
##
C
<
Key
,
T
>
&
container
)
111
:
c
(
container
)
,
i
(
c
.
constBegin
(
)
)
,
n
(
c
.
constEnd
(
)
)
{
}
112
inline
Q
##
C
##
Iterator
&
operator
=
(
const
Q
##
C
<
Key
,
T
>
&
container
)
113
{
c
=
container
;
i
=
c
.
constBegin
(
)
;
n
=
c
.
constEnd
(
)
;
return
*
this
;
}
114
inline
void
toFront
(
)
{
i
=
c
.
constBegin
(
)
;
n
=
c
.
constEnd
(
)
;
}
115
inline
void
toBack
(
)
{
i
=
c
.
constEnd
(
)
;
n
=
c
.
constEnd
(
)
;
}
116
inline
bool
hasNext
(
)
const
{
return
i
!=
c
.
constEnd
(
)
;
}
117
inline
Item
next
(
)
{
n
=
i
++
;
return
n
;
}
118
inline
Item
peekNext
(
)
const
{
return
i
;
}
119
Q_DISABLE_BACKWARD_ITERATOR
120
inline
bool
hasPrevious
(
)
const
{
return
i
!=
c
.
constBegin
(
)
;
}
121
Q_DISABLE_BACKWARD_ITERATOR
122
inline
Item
previous
(
)
{
n
=
--
i
;
return
n
;
}
123
Q_DISABLE_BACKWARD_ITERATOR
124
inline
Item
peekPrevious
(
)
const
{
const_iterator
p
=
i
;
return
--
p
;
}
125
inline
const
T
&
value
(
)
const
{
Q_ASSERT
(
item_exists
(
)
)
;
return
*
n
;
}
126
inline
const
Key
&
key
(
)
const
{
Q_ASSERT
(
item_exists
(
)
)
;
return
n
.
key
(
)
;
}
127
inline
bool
findNext
(
const
T
&
t
)
128
{
while
(
(
n
=
i
)
!=
c
.
constEnd
(
)
)
if
(
*
i
++
==
t
)
return
true
;
return
false
;
}
129
Q_DISABLE_BACKWARD_ITERATOR
130
inline
bool
findPrevious
(
const
T
&
t
)
131
{
while
(
i
!=
c
.
constBegin
(
)
)
if
(
*
(
n
=
--
i
)
==
t
)
return
true
;
132
n
=
c
.
constEnd
(
)
;
return
false
;
}
\
133
}
;
134
135
#
define
Q_DECLARE_MUTABLE_ASSOCIATIVE_ITERATOR
(
C
)
template
136
137
<
class
Key
,
class
T
>
class
138
QMutable
##
C
##
Iterator
\
139
{
140
typedef
typename
Q
##
C
<
Key
,
T
>
::
iterator
iterator
;
141
typedef
typename
Q
##
C
<
Key
,
T
>
::
const_iterator
const_iterator
;
142
Q
##
C
<
Key
,
T
>
*
c
;
143
iterator
i
,
n
;
144
inline
bool
item_exists
(
)
const
{
return
const_iterator
(
n
)
!=
c
->
constEnd
(
)
;
}
public
145
:
146
typedef
iterator
Item
;
147
inline
QMutable
##
C
##
Iterator
(
Q
##
C
<
Key
,
T
>
&
container
)
148
:
c
(
&
container
)
149
{
i
=
c
->
begin
(
)
;
n
=
c
->
end
(
)
;
}
150
inline
QMutable
##
C
##
Iterator
&
operator
=
(
Q
##
C
<
Key
,
T
>
&
container
)
151
{
c
=
&
container
;
i
=
c
->
begin
(
)
;
n
=
c
->
end
(
)
;
return
*
this
;
}
152
inline
void
toFront
(
)
{
i
=
c
->
begin
(
)
;
n
=
c
->
end
(
)
;
}
153
inline
void
toBack
(
)
{
i
=
c
->
end
(
)
;
n
=
c
->
end
(
)
;
}
154
inline
bool
hasNext
(
)
const
{
return
const_iterator
(
i
)
!=
c
->
constEnd
(
)
;
}
155
inline
Item
next
(
)
{
n
=
i
++
;
return
n
;
}
156
inline
Item
peekNext
(
)
const
{
return
i
;
}
157
Q_DISABLE_BACKWARD_ITERATOR
158
inline
bool
hasPrevious
(
)
const
{
return
const_iterator
(
i
)
!=
c
->
constBegin
(
)
;
}
159
Q_DISABLE_BACKWARD_ITERATOR
160
inline
Item
previous
(
)
{
n
=
--
i
;
return
n
;
}
161
Q_DISABLE_BACKWARD_ITERATOR
162
inline
Item
peekPrevious
(
)
const
{
iterator
p
=
i
;
return
--
p
;
}
163
inline
void
remove
(
)
164
{
if
(
const_iterator
(
n
)
!=
c
->
constEnd
(
)
)
{
i
=
c
->
erase
(
n
)
;
n
=
c
->
end
(
)
;
}
}
165
inline
void
setValue
(
const
T
&
t
)
{
if
(
const_iterator
(
n
)
!=
c
->
constEnd
(
)
)
*
n
=
t
;
}
166
inline
T
&
value
(
)
{
Q_ASSERT
(
item_exists
(
)
)
;
return
*
n
;
}
167
inline
const
T
&
value
(
)
const
{
Q_ASSERT
(
item_exists
(
)
)
;
return
*
n
;
}
168
inline
const
Key
&
key
(
)
const
{
Q_ASSERT
(
item_exists
(
)
)
;
return
n
.
key
(
)
;
}
169
inline
bool
findNext
(
const
T
&
t
)
170
{
while
(
const_iterator
(
n
=
i
)
!=
c
->
constEnd
(
)
)
if
(
*
i
++
==
t
)
return
true
;
return
false
;
}
171
Q_DISABLE_BACKWARD_ITERATOR
172
inline
bool
findPrevious
(
const
T
&
t
)
173
{
while
(
const_iterator
(
i
)
!=
c
->
constBegin
(
)
)
if
(
*
(
n
=
--
i
)
==
t
)
return
true
;
174
n
=
c
->
end
(
)
;
return
false
;
}
\
175
}
;
176
177
#
define
Q_DECLARE_ASSOCIATIVE_FORWARD_ITERATOR
(
C
)
template
178
179
<
class
Key
,
class
T
>
class
180
Q
##
C
##
Iterator
\
181
{
182
typedef
typename
Q
##
C
<
Key
,
T
>
::
const_iterator
const_iterator
;
183
Q
##
C
<
Key
,
T
>
c
;
184
const_iterator
i
,
n
;
185
inline
bool
item_exists
(
)
const
{
return
n
!=
c
.
constEnd
(
)
;
}
public
186
:
187
typedef
const_iterator
Item
;
188
inline
Q
##
C
##
Iterator
(
const
Q
##
C
<
Key
,
T
>
&
container
)
189
:
c
(
container
)
,
i
(
c
.
constBegin
(
)
)
,
n
(
c
.
constEnd
(
)
)
{
}
190
inline
Q
##
C
##
Iterator
&
operator
=
(
const
Q
##
C
<
Key
,
T
>
&
container
)
191
{
c
=
container
;
i
=
c
.
constBegin
(
)
;
n
=
c
.
constEnd
(
)
;
return
*
this
;
}
192
inline
void
toFront
(
)
{
i
=
c
.
constBegin
(
)
;
n
=
c
.
constEnd
(
)
;
}
193
inline
void
toBack
(
)
{
i
=
c
.
constEnd
(
)
;
n
=
c
.
constEnd
(
)
;
}
194
inline
bool
hasNext
(
)
const
{
return
i
!=
c
.
constEnd
(
)
;
}
195
inline
Item
next
(
)
{
n
=
i
++
;
return
n
;
}
196
inline
Item
peekNext
(
)
const
{
return
i
;
}
197
inline
const
T
&
value
(
)
const
{
Q_ASSERT
(
item_exists
(
)
)
;
return
*
n
;
}
198
inline
const
Key
&
key
(
)
const
{
Q_ASSERT
(
item_exists
(
)
)
;
return
n
.
key
(
)
;
}
199
inline
bool
findNext
(
const
T
&
t
)
200
{
while
(
(
n
=
i
)
!=
c
.
constEnd
(
)
)
if
(
*
i
++
==
t
)
return
true
;
return
false
;
}
\
201
}
;
202
203
#
define
Q_DECLARE_MUTABLE_ASSOCIATIVE_FORWARD_ITERATOR
(
C
)
template
204
205
<
class
Key
,
class
T
>
class
206
QMutable
##
C
##
Iterator
\
207
{
208
typedef
typename
Q
##
C
<
Key
,
T
>
::
iterator
iterator
;
209
typedef
typename
Q
##
C
<
Key
,
T
>
::
const_iterator
const_iterator
;
210
Q
##
C
<
Key
,
T
>
*
c
;
211
iterator
i
,
n
;
212
inline
bool
item_exists
(
)
const
{
return
const_iterator
(
n
)
!=
c
->
constEnd
(
)
;
}
public
213
:
214
typedef
iterator
Item
;
215
inline
QMutable
##
C
##
Iterator
(
Q
##
C
<
Key
,
T
>
&
container
)
216
:
c
(
&
container
)
217
{
i
=
c
->
begin
(
)
;
n
=
c
->
end
(
)
;
}
218
inline
QMutable
##
C
##
Iterator
&
operator
=
(
Q
##
C
<
Key
,
T
>
&
container
)
219
{
c
=
&
container
;
i
=
c
->
begin
(
)
;
n
=
c
->
end
(
)
;
return
*
this
;
}
220
inline
void
toFront
(
)
{
i
=
c
->
begin
(
)
;
n
=
c
->
end
(
)
;
}
221
inline
void
toBack
(
)
{
i
=
c
->
end
(
)
;
n
=
c
->
end
(
)
;
}
222
inline
bool
hasNext
(
)
const
{
return
const_iterator
(
i
)
!=
c
->
constEnd
(
)
;
}
223
inline
Item
next
(
)
{
n
=
i
++
;
return
n
;
}
224
inline
Item
peekNext
(
)
const
{
return
i
;
}
225
inline
void
remove
(
)
226
{
if
(
const_iterator
(
n
)
!=
c
->
constEnd
(
)
)
{
i
=
c
->
erase
(
n
)
;
n
=
c
->
end
(
)
;
}
}
227
inline
void
setValue
(
const
T
&
t
)
{
if
(
const_iterator
(
n
)
!=
c
->
constEnd
(
)
)
*
n
=
t
;
}
228
inline
T
&
value
(
)
{
Q_ASSERT
(
item_exists
(
)
)
;
return
*
n
;
}
229
inline
const
T
&
value
(
)
const
{
Q_ASSERT
(
item_exists
(
)
)
;
return
*
n
;
}
230
inline
const
Key
&
key
(
)
const
{
Q_ASSERT
(
item_exists
(
)
)
;
return
n
.
key
(
)
;
}
231
inline
bool
findNext
(
const
T
&
t
)
232
{
while
(
const_iterator
(
n
=
i
)
!=
c
->
constEnd
(
)
)
if
(
*
i
++
==
t
)
return
true
;
return
false
;
}
\
233
}
;
234
235
236
#
else
// QT_NO_JAVA_STYLE_ITERATORS
237
#
define
Q_DECLARE_SEQUENTIAL_ITERATOR
(
C
)
238
#
define
Q_DECLARE_MUTABLE_SEQUENTIAL_ITERATOR
(
C
)
239
#
define
Q_DECLARE_ASSOCIATIVE_ITERATOR
(
C
)
240
#
define
Q_DECLARE_MUTABLE_ASSOCIATIVE_ITERATOR
(
C
)
241
#
define
Q_DECLARE_ASSOCIATIVE_FORWARD_ITERATOR
(
C
)
242
#
define
Q_DECLARE_MUTABLE_ASSOCIATIVE_FORWARD_ITERATOR
(
C
)
243
#
endif
// QT_NO_JAVA_STYLE_ITERATORS
244
245
namespace
QtPrivate
{
246
247
template
<
typename
Key,
typename
T,
typename
Iterator>
248
struct
QDefaultKeyValues
249
{
250
static
Key
key
(
const
Iterator &it) {
return
it.key(); }
251
static
Key
key
(Iterator &it) {
return
it.key(); }
252
static
T
value
(
const
Iterator &it) {
return
it.value(); }
253
static
T
value
(Iterator &it) {
return
it.value(); }
254
};
255
256
}
// namespace QtPrivate
257
258
template
<
typename
Key,
typename
T,
class
Iterator,
259
class
Traits =
QtPrivate
::
QDefaultKeyValues
<Key, T, Iterator>>
260
class
QKeyValueIterator
261
{
262
public
:
263
typedef
typename
Iterator::
iterator_category
iterator_category
;
264
typedef
typename
Iterator::
difference_type
difference_type
;
265
typedef
std
::
pair
<
Key
,
T
>
value_type
;
266
typedef
const
value_type
&
reference
;
267
268
QKeyValueIterator
() =
default
;
269
constexpr
explicit
QKeyValueIterator
(Iterator o)
noexcept
(
std
::
is_nothrow_move_constructible
<
Iterator
>::
value
)
270
:
i
(
std
::
move
(
o
)) {}
271
272
std
::
pair
<
Key
,
T
>
operator
*()
const
{
273
return
std::pair<Key, T>(Traits::key(i), Traits::value(i));
274
}
275
276
using
pointer
=
QtPrivate
::
ArrowProxy
<
value_type
>;
277
278
pointer
operator
->()
const
{
279
return
pointer{ std::pair<Key, T>(Traits::key(i), Traits::value(i)) };
280
}
281
282
friend
bool
operator
==(
QKeyValueIterator
lhs,
QKeyValueIterator
rhs)
noexcept
{
return
lhs.i == rhs.i; }
283
friend
bool
operator
!=(
QKeyValueIterator
lhs,
QKeyValueIterator
rhs)
noexcept
{
return
lhs.i != rhs.i; }
284
285
inline
QKeyValueIterator
&
operator
++() { ++i;
return
*
this
; }
286
inline
QKeyValueIterator
operator
++(
int
) {
return
QKeyValueIterator
(i++);}
287
inline
QKeyValueIterator
&
operator
--() { --i;
return
*
this
; }
288
inline
QKeyValueIterator
operator
--(
int
) {
return
QKeyValueIterator
(i--); }
289
Iterator
base
()
const
{
return
i; }
290
291
private
:
292
Iterator i;
293
};
294
295
namespace
QtPrivate
{
296
297
template
<
typename
Map>
298
class
QKeyValueRangeStorage
299
{
300
protected
:
301
Map
m_map
;
302
Map &
map
() {
return
m_map
; }
303
const
Map &
map
()
const
{
return
m_map
; }
304
public
:
305
explicit
QKeyValueRangeStorage
(
const
Map &map) :
m_map
(map) {}
306
explicit
QKeyValueRangeStorage
(Map &&map) :
m_map
(
std
::
move
(
map
)) {}
307
};
308
309
template
<
typename
Map>
310
class
QKeyValueRangeStorage
<Map &>
311
#
ifdef
__cpp_lib_ranges
312
:
public
std
::
ranges
::
view_base
313
#
endif
314
{
315
protected
:
316
Map *
m_map
;
317
Map &
map
() {
return
*
m_map
; }
318
const
Map &
map
()
const
{
return
*
m_map
; }
319
public
:
320
explicit
QKeyValueRangeStorage
(Map &map) :
m_map
(&map) {}
321
};
322
323
template
<
typename
Map>
324
class
QKeyValueRange
:
public
QKeyValueRangeStorage
<Map>
325
{
326
public
:
327
using
QKeyValueRangeStorage
<Map>::
QKeyValueRangeStorage
;
328
auto
begin
() {
return
this
->map().keyValueBegin(); }
329
auto
begin
()
const
{
return
this
->map().keyValueBegin(); }
330
auto
end
() {
return
this
->map().keyValueEnd(); }
331
auto
end
()
const
{
return
this
->map().keyValueEnd(); }
332
};
333
334
}
// namespace QtPrivate
335
336
337
QT_END_NAMESPACE
338
339
#
endif
// QITERATOR_H
QKeyValueIterator
Definition
qiterator.h:261
QKeyValueIterator::difference_type
Iterator::difference_type difference_type
Definition
qiterator.h:264
QKeyValueIterator::QKeyValueIterator
constexpr QKeyValueIterator(Iterator o) noexcept(std::is_nothrow_move_constructible< Iterator >::value)
Definition
qiterator.h:269
QKeyValueIterator::operator*
std::pair< Key, T > operator*() const
Definition
qiterator.h:272
QKeyValueIterator::value_type
std::pair< Key, T > value_type
Definition
qiterator.h:265
QKeyValueIterator::operator==
friend bool operator==(QKeyValueIterator lhs, QKeyValueIterator rhs) noexcept
Definition
qiterator.h:282
QKeyValueIterator::QKeyValueIterator
QKeyValueIterator()=default
QKeyValueIterator::operator->
pointer operator->() const
Definition
qiterator.h:278
QKeyValueIterator::operator++
QKeyValueIterator operator++(int)
Definition
qiterator.h:286
QKeyValueIterator::iterator_category
Iterator::iterator_category iterator_category
Definition
qiterator.h:263
QKeyValueIterator::operator--
QKeyValueIterator & operator--()
Definition
qiterator.h:287
QKeyValueIterator::reference
const value_type & reference
Definition
qiterator.h:266
QKeyValueIterator::operator--
QKeyValueIterator operator--(int)
Definition
qiterator.h:288
QKeyValueIterator::base
Iterator base() const
Definition
qiterator.h:289
QKeyValueIterator::operator!=
friend bool operator!=(QKeyValueIterator lhs, QKeyValueIterator rhs) noexcept
Definition
qiterator.h:283
QKeyValueIterator::operator++
QKeyValueIterator & operator++()
Definition
qiterator.h:285
QtPrivate::QKeyValueRangeStorage< Map & >
Definition
qiterator.h:314
QtPrivate::QKeyValueRangeStorage< Map & >::QKeyValueRangeStorage
QKeyValueRangeStorage(Map &map)
Definition
qiterator.h:320
QtPrivate::QKeyValueRangeStorage< Map & >::map
Map & map()
Definition
qiterator.h:317
QtPrivate::QKeyValueRangeStorage< Map & >::map
const Map & map() const
Definition
qiterator.h:318
QtPrivate::QKeyValueRangeStorage< Map & >::m_map
Map * m_map
Definition
qiterator.h:316
QtPrivate::QKeyValueRangeStorage
Definition
qiterator.h:299
QtPrivate::QKeyValueRangeStorage::QKeyValueRangeStorage
QKeyValueRangeStorage(const Map &map)
Definition
qiterator.h:305
QtPrivate::QKeyValueRangeStorage::m_map
Map m_map
Definition
qiterator.h:301
QtPrivate::QKeyValueRangeStorage::map
Map & map()
Definition
qiterator.h:302
QtPrivate::QKeyValueRangeStorage::QKeyValueRangeStorage
QKeyValueRangeStorage(Map &&map)
Definition
qiterator.h:306
QtPrivate::QKeyValueRangeStorage::map
const Map & map() const
Definition
qiterator.h:303
QtPrivate::QKeyValueRange
Definition
qiterator.h:325
QtPrivate::QKeyValueRange::end
auto end()
Definition
qiterator.h:330
QtPrivate::QKeyValueRange::begin
auto begin() const
Definition
qiterator.h:329
QtPrivate::QKeyValueRange::end
auto end() const
Definition
qiterator.h:331
QtPrivate::QKeyValueRange::begin
auto begin()
Definition
qiterator.h:328
QtPrivate
Definition
qalloc.h:29
Q_DISABLE_BACKWARD_ITERATOR
#define Q_DISABLE_BACKWARD_ITERATOR
Definition
qiterator.h:22
QtPrivate::QDefaultKeyValues
Definition
qiterator.h:249
QtPrivate::QDefaultKeyValues::value
static T value(Iterator &it)
Definition
qiterator.h:253
QtPrivate::QDefaultKeyValues::key
static Key key(const Iterator &it)
Definition
qiterator.h:250
QtPrivate::QDefaultKeyValues::value
static T value(const Iterator &it)
Definition
qiterator.h:252
QtPrivate::QDefaultKeyValues::key
static Key key(Iterator &it)
Definition
qiterator.h:251
qtbase
src
corelib
tools
qiterator.h
Generated on
for Qt by
1.18.0