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


C++ vector insert()用法及代码示例


std::vector::insert() 是 C++ STL 中的内置函数,用于在指定位置的元素之前插入新元素,从而按插入元素的数量有效增加容器大小。

时间复杂度 -线性,O(N)

插入函数被重载以处理多种情况,如下所示:

  1. 在给定索引处插入一个元素。
  2. 多次插入一个元素。
  3. 在给定索引处插入一系列元素。

1. 在给定索引处插入元素

Vector 中 insert() 的语法

vector_name.insert (position, val);

参数

该函数接受下面指定的两个参数:

  • 位置-它指定指向要完成插入的位置的迭代器。
  • -它指定要插入的值。

向量中 insert() 的示例

C++


// C++ program to illustrate the function of 
// vector_name.insert(position,val) 
#include <bits/stdc++.h> 
using namespace std; 
  
int main() 
{ 
  
    // Initialising the vector 
    vector<int> vector_name{ 1, 2, 3, 4, 5 }; 
  
    // Printing out the original vector 
    cout << "Original vector :\n"; 
    for (auto x : vector_name) 
        cout << x << " "; 
    cout << "\n"; 
  
    // Inserting the value 100 at position 3(0-based 
    // indexing) in the vector 
    vector_name.insert(vector_name.begin() + 3, 100); 
  
    // Printing the modified vector 
    cout << "Vector after inserting 100 at position 3 :\n"; 
    for (auto x : vector_name) 
        cout << x << " "; 
    cout << "\n"; 
  
    // Inserting the value 500 at position 1(0-based 
    // indexing) in the vector 
    vector_name.insert(vector_name.begin() + 1, 500); 
  
    // Printing the modified vector 
    cout << "Vector after inserting 500 at position 1 :\n"; 
    for (auto x : vector_name) 
        cout << x << " "; 
    return 0; 
} 
  
// This code is contributed by Abhijeet Kumar(abhijeet19403)
输出
Original vector :
1 2 3 4 5 
Vector after inserting 100 at position 3 :
1 2 3 100 4 5 
Vector after inserting 500 at position 1 :
1 500 2 3 100 4 5 

2. 在给定索引处插入多个元素

Vector 中 insert() 的语法

vector_name.insert(position, size, val)

参数

该函数接受如下指定的三个参数:

  • 位置-它指定指向要完成插入的位置的迭代器。
  • 尺寸-它指定在指定位置插入 val 的次数。
  • -它指定要插入的值。

向量中 insert() 的示例

C++


// C++ program to illustrate the function of 
// vector_name.insert(position,size,val) 
#include <bits/stdc++.h> 
using namespace std; 
  
int main() 
{ 
  
    // Initialising the vector 
    vector<int> vector_name{ 1, 2, 3, 4, 5 }; 
  
    // Printing out the original vector 
    cout << "Original vector :\n"; 
    for (auto x : vector_name) 
        cout << x << " "; 
    cout << endl; 
  
    // Inserting the value 100, 4 times starting at position 
    // 3 
    vector_name.insert(vector_name.begin() + 3, 4, 100); 
  
    // Printing the modified vector 
    cout << "Vector after inserting 100, 4 times, starting "
            "at position 3 :\n"; 
    for (auto x : vector_name) 
        cout << x << " "; 
    return 0; 
} 
  
// This code contributed by Harsh Singh (hsnooob)
输出
Original vector :
1 2 3 4 5 
Vector after inserting 100, 4 times, starting at position 3 :
1 2 3 100 100 100 100 4 5 

3. 在给定索引处插入元素范围

矢量insert()的语法

vector_name.insert(position, iterator1, iterator2)

参数

该函数接受下面指定的三个参数:

  • 位置-它指定要在向量中完成插入的位置。
  • 迭代器1-它指定要插入元素的起始位置
  • 迭代器2-它指定要插入元素的结束位置

矢量示例insert()

C++


// C++ program to illustrate the function of 
// vector_name.insert(position,itr1,itr2) 
#include <bits/stdc++.h> 
using namespace std; 
  
int main() 
{ 
  
    // Initialising the vector 
    vector<int> original{ 1, 2, 3, 4, 5 }; 
  
    vector<int> temp{ 2, 5, 9, 0, 3, 10 }; 
  
    // Printing out the original vector 
    cout << "Original vector :\n"; 
    for (auto x : original) 
        cout << x << " "; 
    cout << endl; 
  
    // Inserting the portion of temp vector in original 
    // vector temp.begin()+3 is starting iterator of vector 
    // to be copied temp.begin()+5 is ending iterator of 
    // vector to be copied 
    original.insert(original.begin() + 3, temp.begin() + 2, 
                    temp.begin() + 5); 
  
    // Printing the modified vector 
    cout << "Vector after Inserting the portion of temp "
            "vector in original vector :\n"; 
    for (auto x : original) 
        cout << x << " "; 
    return 0; 
} 
  
// This code contributed by Harsh Singh (hsnooob)
输出
Original vector :
1 2 3 4 5 
Vector after Inserting the portion of temp vector in original vector :
1 2 3 9 0 3 4 5 


相关用法


注:本文由纯净天空筛选整理自Twinkl Bajaj大神的英文原创作品 vector insert() Function in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。