У меня есть два вектора STL A
и B
, и я хотел бы очистить все элементы A
и переместить все элементы B
в A
, а затем очистить B
. Проще говоря, я хочу это сделать:
std::vector<MyClass> A;
std::vector<MyClass> B;
....
A = B;
B.clear();
Так как B
может быть довольно длинным, для выполнения этой операции требуется k*O(N)
, где k
- константа, а N
- max(size_of(A), size_of(B))
. Мне было интересно, может ли быть более эффективный способ сделать это. Одна вещь, о которой я мог подумать, - определить A
и B
как указатели, а затем скопировать указатели в постоянное время и очистить B
.