在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
。