Deques

std::deque
, which consists of a sequence of arrays, is quite similar to std::vector
. std::deque
need the header <deque>
. The std::deque
has three additional methods deq.push_front(elem)
, deq.pop_front()
and `deq.emplace_front(args… ) to add or remove elements at its beginning.
std::deque
// deque.cpp
...
#include
<deque>
...
struct
MyInt
{
MyInt
(
int
i
)
:
myInt
(
i
){};
int
myInt
;
};
std
::
deque
<
MyInt
>
myIntDeq
;
myIntDeq
.
push_back
(
MyInt
(
5
));
myIntDeq
.
emplace_back
(
1
);
std
::
cout
<<
myIntDeq
.
size
()
<<
std
::
endl
;
// 2
std
::
deque
<
MyInt
>
intDeq
;
intDeq
.
assign
({
1
,
2
,
3
});
for
(
auto
v
:
intDeq
)
std
::
cout
<<
v
<<
" "
;
// 1 2 3
intDeq
.
insert
(
intDeq
.
begin
(),
0
);
for
(
auto
v
:
intDeq
)
std
::
cout
<<
v
<<
" "
;
// 0 1 2 3
intDeq
.
insert
(
intDeq
.
begin
()
+
4
,
4
);
for
(
auto
v
:
intDeq
)
std
::
cout
<<
v
<<
" "
;
// 0 1 2 3 4
intDeq
.
insert
(
intDeq
.
end
(),
{
5
,
6
,
7
,
8
,
9
,
...