forked from OctaForge/libostd
octa::concat
parent
593acb35e4
commit
434816840b
|
@ -123,6 +123,19 @@ namespace octa {
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef StringBase<char> String;
|
typedef StringBase<char> String;
|
||||||
|
|
||||||
|
template<typename R>
|
||||||
|
String concat(R range, String sep = " ") {
|
||||||
|
String ret;
|
||||||
|
if (range.empty()) return move(ret);
|
||||||
|
for (;;) {
|
||||||
|
ret += range.first();
|
||||||
|
range.pop_first();
|
||||||
|
if (range.empty()) break;
|
||||||
|
ret += sep;
|
||||||
|
}
|
||||||
|
return move(ret);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -72,7 +72,7 @@ namespace octa {
|
||||||
Vector(): p_buf(nullptr), p_len(0), p_cap(0) {}
|
Vector(): p_buf(nullptr), p_len(0), p_cap(0) {}
|
||||||
|
|
||||||
explicit Vector(size_t n, const T &val = T()): Vector() {
|
explicit Vector(size_t n, const T &val = T()): Vector() {
|
||||||
p_buf = new uchar[n * sizeof(T)];
|
p_buf = (T *)new uchar[n * sizeof(T)];
|
||||||
p_len = p_cap = n;
|
p_len = p_cap = n;
|
||||||
T *cur = p_buf, *last = p_buf + n;
|
T *cur = p_buf, *last = p_buf + n;
|
||||||
while (cur != last) new (cur++) T(val);
|
while (cur != last) new (cur++) T(val);
|
||||||
|
|
Loading…
Reference in New Issue