当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。