精华内容
下载资源
问答
  • 关于vector中的assign和resize函数

    千次阅读 2009-04-15 21:42:00
    size()函数返回assign中的第一个参数值。调用该函数一定要指定第2个参数值,调用完后,是全新的size,全新的值。 resize函数有2个重载版本,一个只有一个size_type参数,一个除了size_type参数外还有_Ty _val,即...

    assign函数需要2个参数,第一个参数指定新的size,第2个指定每个元素都取的value。size()函数返回assign中的第一个参数值。调用该函数一定要指定第2个参数值,调用完后,是全新的size,全新的值。

     

    resize函数有2个重载版本,一个只有一个size_type参数,一个除了size_type参数外还有_Ty _val,即“可选”新元素值。

     

    先说第一个版本:

     void resize(size_type _Newsize)
      { // determine new length, padding with _Ty() elements as needed
      resize(_Newsize, _Ty());
      }

     

    可见它用_Ty()做第2个参数,调用了它的第2个版本。第2个版本的定义如下:

     void resize(size_type _Newsize, _Ty _Val)
      { // determine new length, padding with _Val elements as needed
      if (size() < _Newsize)
       _Insert_n(end(), _Newsize - size(), _Val);
      else if (_Newsize < size())
       erase(begin() + _Newsize, end());
      }

    由定义可知,对于第一个版本:

    若_Newsize小于oldsize,则剩余元素值不变。

    若_Newsize大于oldsize,则新添加的元素值用元素的默认构造参数初始化(特别的,int型的将被初始化为0)。

    对于第2个版本:

    若_Newsize小于oldsize,则剩余元素值不变。(全部调用erase(begin() + _Newsize, end())擦除掉多余元素)

    若_Newsize大于oldsize,则新添加的元素值用提供的第2个参数初始化。

     

    不管用哪个版本,[0,min(_Newsize,oldsize))范围内的值均保持不变。

     

     

     

     

     

    展开全文
  • c ++ assign函数 C ++ vector :: assign()函数 (C++ vector::assign() function) vector::assign() is a library function of "vector" header, it is used to initialize a vector or assign content to a vector, ...

    c ++ assign函数

    C ++ vector :: assign()函数 (C++ vector::assign() function)

    vector::assign() is a library function of "vector" header, it is used to initialize a vector or assign content to a vector, it assigns the new content to the vector, update the existing content, and also resizes the vector's size according to the content.

    vector :: assign()“ vector”标头的库函数,用于初始化矢量或将内容分配给矢量,将新内容分配给矢量,更新现有内容,并调整矢量的大小根据内容。

    Note: To use vector, include <vector> header.

    注意:要使用向量,请包含<vector>标头。

    Syntax of vector::assign() function

    vector :: assign()函数的语法

        vector::assign(iterator_first, iterator_last);
        vector::assign(size_type n, value_type value);
    
    

    Parameter(s):

    参数:

    In case of type 1: iterator_first, iterator_last – are the first and last iterators of a sequence with them we are going to assign the vector.
    In case of type 2: n – is the size of the vector and value – is a constant value to be assigned.

    在类型1的情况下, iterator_first和iterator_last –是序列的第一个和最后一个迭代器,我们将为其分配向量。
    对于类型2: n –是向量的大小,而value –是要分配的常数。

    Return value: void – In both of the cases it returns nothing.

    返回值: void –在两种情况下均不返回任何内容。

    Example:

    例:

        Input:
        vector<int> v1;
        vector<int> v2;
        
        //assigning
        v1.assign(5, 100);
        v2.assign(v1.begin(), v1.end());
    
        Output:
        //if we print the value
        v1: 100 100 100 100 100
        v2: 100 100 100 100 100
    
    

    C ++程序演示vector :: assign()函数的示例 (C++ program to demonstrate example of vector::assign() function)

    //C++ STL program to demonstrate example of
    //vector::assign() function
    
    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main()
    {
        //declaring vectors
        vector<int> v1;
        vector<int> v2;
        vector<int> v3;
    
        //an array that will be used to assign a vector
        int arr[] = { 10, 20, 30, 40, 50 };
    
        //assigning vectors
        //assigning v1 with 5 elements and 100 as default value
        v1.assign(5, 100);
    
        //assigning v1 with array
        v2.assign(arr + 0, arr + 5);
    
        //assigning v3 with vector v2
        v3.assign(v2.begin(), v2.end());
    
        //pritning the vectors
        cout << "v1: ";
        for (int x : v1)
            cout << x << " ";
        cout << endl;
    
        cout << "v2: ";
        for (int x : v2)
            cout << x << " ";
        cout << endl;
    
        cout << "v3: ";
        for (int x : v3)
            cout << x << " ";
        cout << endl;
    
        return 0;
    }
    
    

    Output

    输出量

    v1: 100 100 100 100 100
    v2: 10 20 30 40 50
    v3: 10 20 30 40 50
    
    

    Reference: C++ vector::assign()

    参考: C ++ vector :: assign()

    翻译自: https://www.includehelp.com/stl/vector-assign-function-with-example.aspx

    c ++ assign函数

    展开全文
  • vector_assign

    2019-05-08 00:18:59
    学习vector中的assign // vector assign #include <iostream> #include <vector> using namespace std; int main () { //assign 给vector分配 vector<int> first; vector<int&...

    学习vector中的assign

    // vector assign
    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    int main ()
    {
        //assign 给vector分配
      vector<int> first;
      vector<int> second;
      vector<int> third;
    
      first.assign (7,100);             // 7 ints with a value of 100
    
      vector<int>::iterator it;
      it=first.begin()+1;
    
      second.assign (it,first.end()-1); // the 5 central values of first
    
      int myints[] = {1776,7,4};
      third.assign (myints,myints+3);   // assigning from array.
    
      cout << "Size of first: " << int (first.size()) << '\n';
      cout << "Size of second: " << int (second.size()) << '\n';
      cout << "Size of third: " << int (third.size()) << '\n';
    
      for(vector<int>::iterator it=second.begin();it!=second.end();++it)
        cout<<' '<<*it;
      return 0;
    }
    
    /*
    Output:
    Size of first: 7
    Size of second: 5
    Size of third: 3
    */
    
    展开全文
  • vector::assign

    2013-05-02 17:36:21
    #include void assign( size_type num, const TYPE& val ); void assign( input_iterator start, input_iterator end ); 函数assign()将区间[start, end)中的值或...此函数将销毁先前vector中的内容. 例如, 下
     #include <vector>
     void assign( size_type num, const TYPE& val );
     void assign( input_iterator start, input_iterator end ); 

    函数assign()将区间[start, end)中的值或num个val的副本赋值给当前的vector.

    此函数将销毁先前vector中的内容.

    例如, 下面的代码使用assign()将10个整数值42的副本赋值给vector:

     vector<int> v;
    v.assign( 10, 42 );
     for( vector<int>::size_type i = 0; i < v.size(); i++ ) {
     cout << v[i] << " ";
     }
     cout << endl; 

    上面的代码将产生如下输出:

     42 42 42 42 42 42 42 42 42 42 

    下面的例子展示了如何使用assign()拷贝vector:

     vector<int> v1;
     for( int i = 0; i < 10; i++ ) {
    v1.push_back( i );
     }
     
    vector<int> v2;
    v2.assign( v1.begin(), v1.end() );
     for( vector<int>::size_type i = 0; i < v2.size(); i++ ) {
     cout << v2[i] << " ";
     }
     cout << endl; 

    运行后产生如下输出:

     0 1 2 3 4 5 6 7 8 9 
    展开全文
  • c++中vector的 = 与 assign的区别

    千次阅读 2020-01-08 11:00:50
    网上错误说法 vector<int> v1(3, 10); vector<int> v2(5, 4); vector<int>v3(6, 5);... vector<... v4.assign(v3.begin(), v3.end()); 第一种 v1.size() = 0; v2.size() = 3...
  • vector::assign()是C++中的STL,它通过替换旧元素为向量元素分配新值。如果需要,它也可以修改向量的大小。分配常量值的语法:vectorname.assign(int size, int value)Parameters:size-要分配的值数value-要分配给...
  • vector的assign()

    2014-10-20 09:11:07
    #include void assign( size_type num, const TYPE& val ); void assign( input_iterator start, input_iterator end ); 函数assign()将区间[start, end)中...此函数将销毁先前vector中的内容. 例如,
  • vector中的resize, reserve , assign 的区别 void reserve (size_type n); reserver函数用来给vector预分配存储区大小,即capacity的值 ,但是没有给这段内存进行初始化。reserve 的参数n是推荐预分配内存的大小,...
  • https://www.cnblogs.com/ziyu-trip/p/7064041.html
  • c++向量assignGiven a vector and we have to assign copy it to another vector by... 给定一个向量,我们必须使用C ++中的vector.assign()将其复制到另一个向量。 Syntax of vector.assign() function: vector.a...
  • C++中vector容器 assign()用法

    万次阅读 2014-03-25 22:12:42
    assign函数: 函数原型: void assign(const_iterator first,const_iterator last);...将区间[first,last)元素赋值到当前的vector容器,或者赋n个值为x元素到vector容器,这个容器会清除掉vector容器以前
  • reserve函数用来给vector预分配存储区大小,即capacity值,但是没有给这段内存进行初始化。reserve参数n推荐预分配内存大小,实际分配可能等于或大于这个值。 当调用函数时,n值如果大于capacity值,...
  • C++STL中vector容器 assign()函数用法

    万次阅读 多人点赞 2012-11-09 15:55:17
    assign函数: 函数原型: void assign(const_iterator first,const_iterator last); void assign(size_type n,const T& x = T()); 功能: 将区间[first,last)元素赋值到当前
  • vector::assign std::pair 升序降序遍历

    千次阅读 2013-08-05 12:05:07
    vector中数据成员的升序和降序排序,然而当vector中的数据类型为自定义结构体类型时,我们该怎样实现升序与降序排列呢?有两种方法,下面的例子能很好的说明: 方法1: 我们直接来看代码吧,比较简单,容易理解: ...
  • 之前博客《实战c++中的vector系列–构造、operator=和assign区别》写了关于assign()方法,其中有一条就是: replacing its current contents modifying its size accordingly 就是替换了vector中已经存在的元素。...
  • vector 有个函数assign, 可以帮助执行赋值操作。 assign会清空你容器。   assign函数: 函数原型: void assign(const_iterator first,const_iterator last); void assign(size_type n,const T&amp; x = ...
  • 因为assign()函数会在赋值的时候调整原向量的size,而...中的具体描述: Assign vector content Assigns new contents to the vector, replacing its current contents, and modifying its size accordingly.
  • vector也许是实际过程使用最多stl容器,看似简单,其实有很多技巧和陷阱。着重看一看vector的构造,暂时按照C++11:default (1) explicit vector (const allocator_type& alloc = allocator_type());fill (2) ...
  • STL库容器vector assign赋值函数 vector<int> v(10,0); int a[10]={1,2,3,4,5,6,7,8,9,10}; v.assign(a,a+10);...v.assign(&...assign()函数要么将区间[start, end)元素赋到当前vector,或者...
  • vector或许是实际过程使用最多stl容器。看似简单,事实上有非常多技巧和陷阱。 着重看一看vector的构造,临时依照C++11: default (1) explicit vector (const allocator_type&amp; alloc = allocator_...
  • STL 中的assign方法(19)

    千次阅读 2014-08-15 14:34:03
    public member function ...std::vector::assign C++98 C++11 range (1) template void assign (InputIterator first, InputIterator last); fill (2) void assign

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 243
精华内容 97
关键字:

vector中的assign