Vector.insert

Inserts additional elements into the Vector right before the element indicated by pos or ptr.

Return index of first inserted element.

Examples

1 //pos:
2 {
3     auto vec = Vector!(int, 3).build(1, 2, 3);
4 
5     size_t pos = vec.insert(1, 42, 2);
6     assert(pos == 1);
7     assert(vec == [1, 42, 42, 2, 3]);
8 
9     pos = vec.insert(100, 4, 3);
10     assert(pos == 5);
11     assert(vec == [1, 42, 42, 2, 3, 4, 4, 4]);
12 }
13 
14 {
15     auto vec = Vector!(int, 3).build(1, 2, 3);
16 
17     size_t pos = vec.insert(1, [20, 30, 40]);
18     assert(pos == 1);
19     assert(vec == [1, 20, 30, 40, 2, 3]);
20 
21     pos = vec.insert(100, [4, 5, 6]);
22     assert(pos == 6);
23     assert(vec == [1, 20, 30, 40, 2, 3, 4, 5, 6]);
24 }
25 
26 {
27     auto vec = Vector!(int, 3).build(1, 2, 3);
28     auto tmp = Vector!(int, 10).build(-1, -2, -3);
29 
30     size_t pos = vec.insert(1, tmp);
31     assert(pos == 1);
32     assert(vec == [1, -1, -2, -3, 2, 3]);
33 
34     pos = vec.insert(100, Vector!(int, 10).build(40, 50, 60));
35     assert(pos == 6);
36     assert(vec == [1, -1, -2, -3, 2, 3, 40, 50, 60]);
37 }
38 
39 //ptr:
40 {
41     auto vec = Vector!(int, 3).build(1, 2, 3);
42 
43     size_t pos = vec.insert(vec.ptr + 1, 42, 2);
44     assert(pos == 1);
45     assert(vec == [1, 42, 42, 2, 3]);
46 
47     pos = vec.insert(vec.ptr + 100, 4, 3);
48     assert(pos == 5);
49     assert(vec == [1, 42, 42, 2, 3, 4, 4, 4]);
50 }
51 
52 {
53     auto vec = Vector!(int, 3).build(1, 2, 3);
54 
55     size_t pos = vec.insert(vec.ptr + 1, [20, 30, 40]);
56     assert(pos == 1);
57     assert(vec == [1, 20, 30, 40, 2, 3]);
58 
59     pos = vec.insert(vec.ptr + 100, [4, 5, 6]);
60     assert(pos == 6);
61     assert(vec == [1, 20, 30, 40, 2, 3, 4, 5, 6]);
62 }
63 
64 {
65     auto vec = Vector!(int, 3).build(1, 2, 3);
66     auto tmp = Vector!(int, 10).build(-1, -2, -3);
67 
68     size_t pos = vec.insert(vec.ptr + 1, tmp);
69     assert(pos == 1);
70     assert(vec == [1, -1, -2, -3, 2, 3]);
71 
72     pos = vec.insert(vec.ptr + 100, Vector!(int, 10).build(40, 50, 60));
73     assert(pos == 6);
74     assert(vec == [1, -1, -2, -3, 2, 3, 40, 50, 60]);
75 }

Meta