在C++中,std::vector 类的 assign 方法用于在向量中设置新内容,替换其当前内容。以下是详细的解释:
基本用法
assign 方法有几种重载形式,允许你用不同的方式设置 vector 的内容:
assign(size_type n, const T& val):将向量的内容替换为n个val的副本。assign(InputIterator first, InputIterator last):使用两个迭代器first和last指定的范围来替换向量的内容。assign(initializer_list<T> il):使用初始化列表il中的元素来替换向量的内容。
特点和注意事项
assign方法改变向量的大小和内容。- 如果新大小大于当前大小,会创建新元素。如果新大小小于当前大小,则多余的元素会被销毁。
- 使用迭代器范围重载时,范围
[first, last)应有效且不应指向同一vector中的元素。 - 分配新内容可能导致所有现有的迭代器、引用和指针失效。
示例代码
1 |
|
在这个例子中,我们展示了如何使用不同的 assign 方法来设置 vector 的内容。每种方法都清除原有内容,并根据提供的新值设置 vector。