如何正确地将多个元素一次性添加到vector中?
时间: 2024-09-30 08:04:53 浏览: 41
在C++中,一次性添加大量元素到`std::vector`并不推荐,因为每次调用`push_back`都会引起向量内部数据的移动,时间复杂度是O(n),对于大量元素效率较低。如果你确实需要这样做,可以使用`insert`函数或者一次性构造一个大容量的向量,然后赋值给另一个向量。例如:
```cpp
// 如果元素已准备好,可以一次性插入
std::vector<Book> books = {Book(1001, 100, "数学", "小明", "武汉"),
Book(1003, 1, "语文", "小红", "上海"),
Book(1002, 12, "英语", "小军", "北京")};
myVector.insert(myVector.begin(), books.begin(), books.end());
// 或者创建一个新的vector并复制所有元素
std::vector<Book> largeBatch;
for (const auto& book : books) {
largeBatch.push_back(book);
}
myVector = largeBatch;
```
阅读全文