vector::assign()是C++中的STL,它通过替换旧元素为向量元素分配新值。如果需要,它也可以修改向量的大小。
分配常量值的语法:
vectorname.assign(int size, int value)
Parameters:size-要分配的值数
value-要分配给向量名称的值
程序1:下面的程序显示如何为向量分配常量值
// CPP program to demonstrate
// how to assign constant values to a vector
#include
using namespace std;
int main()
{
vector v;
v.assign(7, 100);
cout << "Size of first:" << int(v.size()) << '\n';
cout << "Elements are\n";
for (int i = 0; i < v.size(); i++)
cout << v[i] << endl;
return 0;
}
输出:
Size of first:7
Elements are
100
100
100
100
100
100
100
从数组或列表中分配值的语法:
vectorname.assign(arr, arr + size)
Parameters:arr-要分配给向量的数组
size-必须从头开始分配的元素数。
程序2:下面的程序显示如何从数组或列表中分配值
// CPP program to demonstrate
// how to assign values to a vector
// from a list
#include
using namespace std;
int main()
{
vector v1;
int a[] = { 1, 2, 3 };
// assign first 2 values
v1.assign(a, a + 2);
cout << "Elements of vector1 are\n";
for (int i = 0; i < v1.size(); i++)
cout << v1[i] << " ";
vector v2;
// assign first 3 values
v2.assign(a, a + 3);
cout << "\nElements of vector2 are\n";
for (int i = 0; i < v2.size(); i++)
cout << v2[i] << " ";
return 0;
}
输出:
Elements of vector1 are
1 2
Elements of vector2 are
1 2 3
用于修改向量值的语法
vectorname.assign(InputIterator first, InputIterator last)
Parameters:first -输入迭代器到初始位置范围。
last -输入迭代器到最终位置范围。
程序3:下面的程序显示了如何修改向量
// CPP program to demonstrate
// how to modify vector size
#include
using namespace std;
int main()
{
vector v;
v.assign(7, 100);
cout << "Size of first:" << int(v.size()) << '\n';
cout << "Elements are\n";
for (int i = 0; i < v.size(); i++)
cout << v[i] << endl;
// modify the elements
v.assign(v.begin(), v.begin() + 3);
cout << "\nModified VectorElements are\n";
for (int i = 0; i < v.size(); i++)
cout << v[i] << endl;
return 0;
}
输出:
Size of first:7
Elements are
100
100
100
100
100
100
100
Modified VectorElements are
100
100
100