當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ vector::assign()用法及代碼示例


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


相關用法


注:本文由純淨天空篩選整理自Striver大神的英文原創作品 vector :: assign() in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。