在C++ STL中,vector是一种非常常用的动态数组容器。它可以在运行时动态调整大小,并且支持快速的随机访问。为了方便地为向量赋值,STL提供了vector::assign()函数。
vector::assign()函数的语法如下:
```cpp
void assign (const_iterator first, const_iterator last);
void assign (size_type n, const value_type& val);
```
第一个参数是指向要赋值的区间的迭代器,第二个参数是要赋给向量的值。需要注意的是,如果要赋值的向量大小为n,那么第二个参数应该是一个value_type类型的常量引用。如果要赋值的向量大小为0,那么第一个参数可以是任何迭代器,因为它将被忽略。
现在,让我们来看一些使用vector::assign()函数为向量赋值的示例。
1. 使用迭代器区间进行赋值
vector::assign()函数的一个常见用法是使用迭代器区间对向量进行赋值。下面是一个简单的示例,向一个整数向量中添加10个元素:
```cpp
vector
for(int i = 1; i <= 10; i++) {
v.push_back(i);
}
vector
v2.assign(v.begin(), v.end());
```
在此示例中,我们首先创建了一个整数向量v,并使用push_back()函数将10个元素添加到向量中。然后,我们创建了另一个空的整数向量v2,并使用v中的迭代器区间对其进行赋值。这将导致v2包含与v相同的10个元素。
2. 使用相同值进行赋值
另一个常见用法是使用相同的值将向量的所有元素设置为相同的值。下面是一个示例,演示如何使用assign()函数将整数向量中的所有元素设置为5:
```cpp
vector
v.assign(10, 5);
```
在此示例中,我们首先创建了一个10个元素的整数向量v,并将其所有元素设置为默认值0。然后,我们使用assign()函数将向量的所有元素设置为5。
3. 使用空向量进行赋值
最后,我们可以使用空向量来清空一个已经有元素的向量。下面是一个示例,演示如何使用assign()函数删除整数向量的所有元素:
```cpp
vector
v.assign(vector
```
在此示例中,我们首先创建了一个10个元素的整数向量v。然后,我们使用一个空的整数向量来将v中的所有元素清空。
总结
vector::assign()函数是一个非常有用的函数,它可以方便地为向量赋值。通过使用迭代器区间,我们可以轻松地将一个向量复制到另一个向量中。使用相同的值进行赋值,我们可以将向量的所有元素设置为相同的值。最后,通过使用空向量进行赋值,我们可以轻松地删除向量的所有元素。在应用程序中,这些用途是非常常见的,并且在C++ STL中是非常重要的函数。