forked from OctaForge/libostd
Vector::insert/insert_range now returns a range
parent
657118f037
commit
3cf06f228d
|
@ -370,38 +370,38 @@ public:
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
Pointer insert(Size idx, T &&v) {
|
Range insert(Size idx, T &&v) {
|
||||||
insert_base(idx, 1);
|
insert_base(idx, 1);
|
||||||
p_buf.p_ptr[idx] = octa::move(v);
|
p_buf.p_ptr[idx] = octa::move(v);
|
||||||
return &p_buf.p_ptr[idx];
|
return Range(&p_buf.p_ptr[idx], &p_buf.p_ptr[p_len]);
|
||||||
}
|
}
|
||||||
|
|
||||||
Pointer insert(Size idx, const T &v) {
|
Range insert(Size idx, const T &v) {
|
||||||
insert_base(idx, 1);
|
insert_base(idx, 1);
|
||||||
p_buf.p_ptr[idx] = v;
|
p_buf.p_ptr[idx] = v;
|
||||||
return &p_buf.p_ptr[idx];
|
return Range(&p_buf.p_ptr[idx], &p_buf.p_ptr[p_len]);
|
||||||
}
|
}
|
||||||
|
|
||||||
Pointer insert(Size idx, Size n, const T &v) {
|
Range insert(Size idx, Size n, const T &v) {
|
||||||
insert_base(idx, n);
|
insert_base(idx, n);
|
||||||
for (Size i = 0; i < n; ++i) {
|
for (Size i = 0; i < n; ++i) {
|
||||||
p_buf.p_ptr[idx + i] = v;
|
p_buf.p_ptr[idx + i] = v;
|
||||||
}
|
}
|
||||||
return &p_buf.p_ptr[idx];
|
return Range(&p_buf.p_ptr[idx], &p_buf.p_ptr[p_len]);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename U>
|
template<typename U>
|
||||||
Pointer insert_range(Size idx, U range) {
|
Range insert_range(Size idx, U range) {
|
||||||
Size l = range.size();
|
Size l = range.size();
|
||||||
insert_base(idx, l);
|
insert_base(idx, l);
|
||||||
for (Size i = 0; i < l; ++i) {
|
for (Size i = 0; i < l; ++i) {
|
||||||
p_buf.p_ptr[idx + i] = range.front();
|
p_buf.p_ptr[idx + i] = range.front();
|
||||||
range.pop_front();
|
range.pop_front();
|
||||||
}
|
}
|
||||||
return &p_buf.p_ptr[idx];
|
return Range(&p_buf.p_ptr[idx], &p_buf.p_ptr[p_len]);
|
||||||
}
|
}
|
||||||
|
|
||||||
Pointer insert(Size idx, InitializerList<T> il) {
|
Range insert(Size idx, InitializerList<T> il) {
|
||||||
return insert_range(idx, octa::each(il));
|
return insert_range(idx, octa::each(il));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue