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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。