通常、<<
追加コンテナーには operator を使用します。バリアントのいずれかを選択できます。
これは演算子の実現です+=
template <typename T>
QVector<T> &QVector<T>::operator+=(const QVector &l)
{
int newSize = d->size + l.d->size;
realloc(d->size, newSize);
T *w = p->array + newSize;
T *i = l.p->array + l.d->size;
T *b = l.p->array;
while (i != b) {
if (QTypeInfo<T>::isComplex)
new (--w) T(*--i);
else
*--w = *--i;
}
d->size = newSize;
return *this;
}
そしてオペレーターの実現<<
inline QVector<T> &operator<<(const QVector<T> &l)
{ *this += l; return *this; }
PS。Qtの「buns」を使用できる場合、データをコピーするためのループを作成しても意味がありません。Qtはデータをより速く追加し、ループします
PSS。アシスタントを読むと、QStack が QVector から継承されていることがわかる場合があります。