@@ -11,7 +11,7 @@ are the most common container in Rust, and are flexible enough to fit many use
11
11
cases.
12
12
13
13
Vectors can also be sorted and used as efficient lookup tables with the
14
- ` std::vec:: bsearch` function , if all the elements are inserted at one time and
14
+ ` bsearch() ` method , if all the elements are inserted at one time and
15
15
deletions are unnecessary.
16
16
17
17
## Maps and sets
@@ -42,10 +42,15 @@ implementing the `IterBytes` trait.
42
42
43
43
## Double-ended queues
44
44
45
- The ` extra::deque ` module implements a double-ended queue with ` O(1) ` amortized
46
- inserts and removals from both ends of the container. It also has ` O(1) `
47
- indexing like a vector. The contained elements are not required to be copyable,
48
- and the queue will be sendable if the contained type is sendable.
45
+ The ` extra::ringbuf ` module implements a double-ended queue with ` O(1) `
46
+ amortized inserts and removals from both ends of the container. It also has
47
+ ` O(1) ` indexing like a vector. The contained elements are not required to be
48
+ copyable, and the queue will be sendable if the contained type is sendable.
49
+ Its interface ` Deque ` is defined in ` extra::collections ` .
50
+
51
+ The ` extra::dlist ` module implements a double-ended linked list, also
52
+ implementing the ` Deque ` trait, with ` O(1) ` removals and inserts at either end,
53
+ and ` O(1) ` concatenation.
49
54
50
55
## Priority queues
51
56
@@ -197,11 +202,11 @@ The function `range` (or `range_inclusive`) allows to simply iterate through a g
197
202
198
203
~~~
199
204
for i in range(0, 5) {
200
- printf !("%d ", i) // prints "0 1 2 3 4"
205
+ print !("{} ", i) // prints "0 1 2 3 4"
201
206
}
202
207
203
208
for i in std::iter::range_inclusive(0, 5) { // needs explicit import
204
- printf !("%d ", i) // prints "0 1 2 3 4 5"
209
+ print !("{} ", i) // prints "0 1 2 3 4 5"
205
210
}
206
211
~~~
207
212
@@ -233,15 +238,15 @@ let mut it = xs.iter().zip(ys.iter());
233
238
234
239
// print out the pairs of elements up to (&3, &"baz")
235
240
for (x, y) in it {
236
- printfln !("%d %s ", * x, * y);
241
+ println !("{} {} ", * x, * y);
237
242
238
243
if *x == 3 {
239
244
break;
240
245
}
241
246
}
242
247
243
248
// yield and print the last pair from the iterator
244
- printfln !("last: %? ", it.next());
249
+ println !("last: {:?} ", it.next());
245
250
246
251
// the iterator is now fully consumed
247
252
assert!(it.next().is_none());
@@ -335,13 +340,13 @@ another `DoubleEndedIterator` with `next` and `next_back` exchanged.
335
340
~~~
336
341
let xs = [1, 2, 3, 4, 5, 6];
337
342
let mut it = xs.iter();
338
- printfln !("%? ", it.next()); // prints `Some(&1)`
339
- printfln !("%? ", it.next()); // prints `Some(&2)`
340
- printfln !("%? ", it.next_back()); // prints `Some(&6)`
343
+ println !("{:?} ", it.next()); // prints `Some(&1)`
344
+ println !("{:?} ", it.next()); // prints `Some(&2)`
345
+ println !("{:?} ", it.next_back()); // prints `Some(&6)`
341
346
342
347
// prints `5`, `4` and `3`
343
348
for &x in it.invert() {
344
- printfln !("%? ", x)
349
+ println !("{} ", x)
345
350
}
346
351
~~~
347
352
@@ -356,11 +361,11 @@ let xs = [1, 2, 3, 4];
356
361
let ys = [5, 6, 7, 8];
357
362
let mut it = xs.iter().chain(ys.iter()).map(|&x| x * 2);
358
363
359
- printfln !("%? ", it.next()); // prints `Some(2)`
364
+ println !("{:?} ", it.next()); // prints `Some(2)`
360
365
361
366
// prints `16`, `14`, `12`, `10`, `8`, `6`, `4`
362
367
for x in it.invert() {
363
- printfln !("%? ", x);
368
+ println !("{} ", x);
364
369
}
365
370
~~~
366
371
@@ -387,17 +392,17 @@ underlying iterators are.
387
392
let xs = [1, 2, 3, 4, 5];
388
393
let ys = ~[7, 9, 11];
389
394
let mut it = xs.iter().chain(ys.iter());
390
- printfln !("%? ", it.idx(0)); // prints `Some(&1)`
391
- printfln !("%? ", it.idx(5)); // prints `Some(&7)`
392
- printfln !("%? ", it.idx(7)); // prints `Some(&11)`
393
- printfln !("%? ", it.idx(8)); // prints `None`
395
+ println !("{:?} ", it.idx(0)); // prints `Some(&1)`
396
+ println !("{:?} ", it.idx(5)); // prints `Some(&7)`
397
+ println !("{:?} ", it.idx(7)); // prints `Some(&11)`
398
+ println !("{:?} ", it.idx(8)); // prints `None`
394
399
395
400
// yield two elements from the beginning, and one from the end
396
401
it.next();
397
402
it.next();
398
403
it.next_back();
399
404
400
- printfln !("%? ", it.idx(0)); // prints `Some(&3)`
401
- printfln !("%? ", it.idx(4)); // prints `Some(&9)`
402
- printfln !("%? ", it.idx(6)); // prints `None`
405
+ println !("{:?} ", it.idx(0)); // prints `Some(&3)`
406
+ println !("{:?} ", it.idx(4)); // prints `Some(&9)`
407
+ println !("{:?} ", it.idx(6)); // prints `None`
403
408
~~~
0 commit comments