upd
This commit is contained in:
+30
-1
@@ -1,6 +1,7 @@
|
||||
* Task: construct an empty deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650432
|
||||
:END:
|
||||
** Front
|
||||
Write how to create an empty deque of ints
|
||||
@@ -12,6 +13,7 @@ std::deque<int> d;
|
||||
* Task: construct deque with 5 copies of value :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650427
|
||||
:END:
|
||||
** Front
|
||||
Write how to create a deque with 5 elements, all initialized to 42
|
||||
@@ -23,6 +25,7 @@ std::deque<int> d(5, 42); // {42, 42, 42, 42, 42}
|
||||
* Task: construct deque from initializer list :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650422
|
||||
:END:
|
||||
** Front
|
||||
Write how to create a deque initialized with {1, 2, 3}
|
||||
@@ -34,6 +37,7 @@ std::deque<int> d = {1, 2, 3};
|
||||
* Task: construct deque from a range :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650418
|
||||
:END:
|
||||
** Front
|
||||
Write how to create a deque from a vector's begin/end iterators
|
||||
@@ -46,6 +50,7 @@ std::deque<int> d(v.begin(), v.end());
|
||||
* Task: access element at index with bounds checking :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650414
|
||||
:END:
|
||||
** Front
|
||||
Write how to safely access element at index 2 in a deque (throws on invalid index)
|
||||
@@ -58,6 +63,7 @@ int x = d.at(2); // returns 30, throws std::out_of_range if invalid
|
||||
* Task: access element at index with operator[] :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650409
|
||||
:END:
|
||||
** Front
|
||||
Write how to access element at index 1 using operator[]
|
||||
@@ -70,6 +76,7 @@ int x = d[1]; // returns 20, no bounds check
|
||||
* Task: access first and last elements :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650404
|
||||
:END:
|
||||
** Front
|
||||
Write how to get the first and last element of a deque
|
||||
@@ -83,6 +90,7 @@ int last = d.back(); // 30
|
||||
* Task: iterate over deque with begin/end :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650399
|
||||
:END:
|
||||
** Front
|
||||
Write a range-based for loop over a deque using iterators
|
||||
@@ -99,6 +107,7 @@ for (int x : d) { std::cout << x << " "; }
|
||||
* Task: reverse iterate over deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650395
|
||||
:END:
|
||||
** Front
|
||||
Write how to iterate backwards through a deque using reverse iterators
|
||||
@@ -113,6 +122,7 @@ for (auto it = d.rbegin(); it != d.rend(); ++it) {
|
||||
* Task: check if deque is empty :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650391
|
||||
:END:
|
||||
** Front
|
||||
Write how to check if a deque is empty
|
||||
@@ -125,6 +135,7 @@ if (d.empty()) { /* ... */ }
|
||||
* Task: get size of deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650387
|
||||
:END:
|
||||
** Front
|
||||
Write how to get the number of elements in a deque
|
||||
@@ -137,6 +148,7 @@ std::size_t n = d.size(); // returns 3
|
||||
* Task: clear all elements from deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650383
|
||||
:END:
|
||||
** Front
|
||||
Write how to remove all elements from a deque
|
||||
@@ -149,6 +161,7 @@ d.clear(); // size becomes 0
|
||||
* Task: push elements to back of deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650379
|
||||
:END:
|
||||
** Front
|
||||
Write how to add elements 10, 20, 30 to the back of a deque
|
||||
@@ -163,6 +176,7 @@ d.push_back(30);
|
||||
* Task: push elements to front of deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650375
|
||||
:END:
|
||||
** Front
|
||||
Write how to add elements 30, 20, 10 to the front of a deque (pushing in that order)
|
||||
@@ -177,6 +191,7 @@ d.push_front(10); // {10, 20, 30}
|
||||
* Task: pop elements from back of deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650371
|
||||
:END:
|
||||
** Front
|
||||
Write how to remove the last element from a deque
|
||||
@@ -189,6 +204,7 @@ d.pop_back(); // {1, 2}
|
||||
* Task: pop elements from front of deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650367
|
||||
:END:
|
||||
** Front
|
||||
Write how to remove the first element from a deque
|
||||
@@ -201,6 +217,7 @@ d.pop_front(); // {2, 3}
|
||||
* Task: emplace back into deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650363
|
||||
:END:
|
||||
** Front
|
||||
Write how to construct a pair in-place at the back of a deque (without copying)
|
||||
@@ -213,6 +230,7 @@ d.emplace_back(1, 2); // constructs pair{1,2} directly
|
||||
* Task: emplace front into deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650359
|
||||
:END:
|
||||
** Front
|
||||
Write how to construct an element in-place at the front of a deque
|
||||
@@ -225,6 +243,7 @@ d.emplace_front("hello"); // constructs string directly at front
|
||||
* Task: resize deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650354
|
||||
:END:
|
||||
** Front
|
||||
Write how to resize a deque to 10 elements, filling new spots with 0
|
||||
@@ -238,6 +257,7 @@ d.resize(5, 42); // resize to 5, filling with 42 if growing
|
||||
* Task: insert element at position :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650349
|
||||
:END:
|
||||
** Front
|
||||
Write how to insert value 99 at the beginning of a deque
|
||||
@@ -250,6 +270,7 @@ d.insert(d.begin(), 99); // {99, 1, 2, 3}
|
||||
* Task: insert multiple copies :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650344
|
||||
:END:
|
||||
** Front
|
||||
Write how to insert 5 copies of value 42 starting at position begin
|
||||
@@ -262,6 +283,7 @@ d.insert(d.begin(), 5, 42); // {42, 42, 42, 42, 42, 1, 2, 3}
|
||||
* Task: insert range into deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650339
|
||||
:END:
|
||||
** Front
|
||||
Write how to insert all elements from a vector into a deque at position begin
|
||||
@@ -275,6 +297,7 @@ d.insert(d.begin(), v.begin(), v.end()); // {10, 20, 1, 2, 3}
|
||||
* Task: erase single element :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650335
|
||||
:END:
|
||||
** Front
|
||||
Write how to erase the element at position begin + 1 in a deque
|
||||
@@ -287,6 +310,7 @@ d.erase(d.begin() + 1); // {1, 3}
|
||||
* Task: erase range of elements :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650331
|
||||
:END:
|
||||
** Front
|
||||
Write how to erase elements from begin to begin+2 (2 elements) in a deque
|
||||
@@ -299,6 +323,7 @@ d.erase(d.begin(), d.begin() + 2); // {3, 4, 5}
|
||||
* Task: swap two deques :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650326
|
||||
:END:
|
||||
** Front
|
||||
Write how to swap the contents of two deques
|
||||
@@ -312,6 +337,7 @@ d1.swap(d2); // d1 = {4,5,6}, d2 = {1,2,3}
|
||||
* Task: emplace at specific position :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650322
|
||||
:END:
|
||||
** Front
|
||||
Write how to construct a pair in-place at position begin of a deque
|
||||
@@ -324,6 +350,7 @@ d.emplace(d.begin(), 1, 2); // constructs pair{1,2} at begin
|
||||
* Task: assign new contents to deque :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650318
|
||||
:END:
|
||||
** Front
|
||||
Write how to replace all contents of a deque with 5 copies of 99
|
||||
@@ -336,6 +363,7 @@ d.assign(5, 99); // {99, 99, 99, 99, 99}
|
||||
* Task: assign from range :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650314
|
||||
:END:
|
||||
** Front
|
||||
Write how to replace deque contents with all elements from a vector
|
||||
@@ -349,6 +377,7 @@ d.assign(v.begin(), v.end()); // {10, 20, 30}
|
||||
* Task: use deque as FIFO queue :cpp:deque:production:
|
||||
:PROPERTIES:
|
||||
:ANKI_NOTE_TYPE: Basic
|
||||
:ANKI_NOTE_ID: 1777825650305
|
||||
:END:
|
||||
** Front
|
||||
Write how to use deque as a FIFO queue (enqueue 1, 2, 3 then dequeue all)
|
||||
@@ -364,4 +393,4 @@ while (!q.empty()) {
|
||||
q.pop_front(); // dequeue
|
||||
}
|
||||
// Output: 1 2 3
|
||||
#+end_src
|
||||
#+end_src
|
||||
|
||||
Reference in New Issue
Block a user