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 <bits/stdc++.h>
using namespace std;
int main()
{
vector<int> 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 <bits/stdc++.h>
using namespace std;
int main()
{
vector<int> 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<int> 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 <bits/stdc++.h>
using namespace std;
int main()
{
vector<int> 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
相关用法
- C++ vector::cbegin()、vector::cend()用法及代码示例
- C++ vector::front()、vector::back()用法及代码示例
- C++ vector::push_back()、vector::pop_back()用法及代码示例
- C++ vector::empty()、vector::size()用法及代码示例
- C++ std::string::assign()用法及代码示例
- C++ deque assign()用法及代码示例
- C++ forward_list assign()用法及代码示例
- C++ list assign()用法及代码示例
- C++ vector::at()、vector::swap()用法及代码示例
- C++ vector::begin()、vector::end()用法及代码示例
注:本文由纯净天空筛选整理自Striver大神的英文原创作品 vector :: assign() in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。