了解 C++ 中的向量 insert()

介绍

在本教程中,我们将学习关于 ** vector insert() 在 C++**. 以及看看它是如何工作的,可以用例子以不同的方式完成插入操作。

在 C++ 中使用 vector::insert() 函数

基本上,从 C++ 中的 STL 函数中使用的 vector::insert() 函数将元素或值插入到 vector容器中。

在 vector 上使用 insert() 函数

insert()方法可以用来以不同的方式将单个或多个元素插入给定的矢量,在不同的情况下,我们可以在我们想要的位置插入单个值,我们甚至可以同时插入多个值在矢量中,甚至我们可以插入一堆来自另一个矢量的值。

所以,让我们看看我们如何可以轻松地做到这一点。

1、将一个值插入一个矢量

我们可以直接传递指向我们想要的位置的迭代器,并将要插入的值插入到‘insert()’函数中,以修改矢量。

仔细看看下面的示例,在这里我们试图在矢量开始时插入值10。

 1#include<iostream>    
 2#include<vector> 
 3using namespace std;
 4int main()
 5{  
 6    vector<int> vec {1,2,3,4,5};
 7    
 8    cout<<"Intially vector: ";
 9    for(auto i=vec.begin(); i<vec.end(); i++)
10    {
11    	cout<<" "<<*i;
12    }
13    
14    vec.insert(vec.begin(),10);//Inserting 10 to the vector
15    
16    cout<<"\n\nThe modified vector is: ";
17    for(auto i=vec.begin(); i<vec.end(); i++)
18    {
19    	cout<<" "<<*i;
20    }
21    return 0;
22}

Output;

1Intially vector:  1 2 3 4 5
2
3The modified vector is:  10 1 2 3 4 5

这里,

  • 首先我们 initialize一个矢量, vec. 然后打印相同
  • 然后我们在矢量上呼叫 insert() 函数 vec 参数 vec.begin()10(新值)。 注意,在这里 vec.begin() 返回指向矢量开始的迭代器
  • 插入完成后,我们使用简单的 for loop打印新矢量以查看结果的矢量

2、多次输入相同的值

我们还可以使用insert()函数同时插入多个值,通过传递一个迭代器,指向我们要插入的起始位置,该值将重复多少次,最后是值。

下面的例子充分说明了它的使用。

 1#include<iostream>    
 2#include<vector> 
 3using namespace std;
 4int main()
 5{  
 6    vector<int> vec {10,20,30,40};
 7    
 8    cout<<"Intially vector: ";
 9    for(auto i=vec.begin(); i<vec.end(); i++)
10    {
11    	cout<<" "<<*i;
12    }
13    
14    vec.insert(vec.end(),3,100);//Inserting 100, 3 times to the vector
15    
16    cout<<"\n\nThe modified vector is: ";
17    for(auto i=vec.begin(); i<vec.end(); i++)
18    {
19    	cout<<" "<<*i;
20    }
21    return 0;
22}

Output;

1Intially vector:  10 20 30 40
2
3The modified vector is:  10 20 30 40 100 100 100

这里,

  • 我们初始化我们的矢量 vec 并打印相同的
  • 然后我们传递指向矢量尽头的迭代器,返回由 vec.end(), 3(我们想要重复值的次数),并将值 100 输入()函数
  • 这样,我们可以从输出中观察到,100 被插入到矢量尽头三次, vec

3、添加另一个矢量

此外,我们还可以将另一个 vector 的元素插入我们的旧 vector. 我们只需要通过一个 iterator 指向我们 vector 中需要插入另一个 vector 的位置。

让我们举一个小例子来理解工作。

 1#include<iostream>    
 2#include<vector> 
 3using namespace std;
 4int main()
 5{  
 6    vector<int> vec {2,4,6,8};
 7    vector<int> vec2 {1,3,5,7};
 8    cout<<"Intially first vector: ";
 9    for(auto i=vec.begin(); i<vec.end(); i++)
10    {
11    	cout<<" "<<*i;
12    }
13    cout<<"\nIntially second vector: ";
14    for(auto i=vec2.begin(); i<vec2.end(); i++)
15    {
16    	cout<<" "<<*i;
17    }
18    
19    //Inserting vec2 at the beginning of the vec vector
20    vec.insert(vec.begin(),vec2.begin(),vec2.end());
21    
22    cout<<"\n\nThe modified vector is: ";
23    for(auto i=vec.begin(); i<vec.end(); i++)
24    {
25    	cout<<" "<<*i;
26    }
27    return 0;
28}

Output;

1Intially first vector:  2 4 6 8
2Intially second vector:  1 3 5 7
3
4The modified vector is:  1 3 5 7 2 4 6 8

在这里,vecvec2是两个矢量,其中 vec2是我们需要插入矢量中的元素, vec.我们称之为insert()函数,上面提到的相应参数。

结论

所以,在本教程中,我们解释了在C++中使用STL的 **vector insert()函数的工作以及如何使用它。为了更好地理解,我们建议您自己尝试上述代码片段。

参考

Published At
Categories with 技术
Tagged with
comments powered by Disqus