介绍
在本教程中,我们将学习关于 ** 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
在这里,vec
和vec2
是两个矢量,其中 vec2是我们需要插入矢量中的元素, vec.我们称之为insert()
函数,上面提到的相应参数。
结论
所以,在本教程中,我们解释了在C++中使用STL的 **vector insert()函数的工作以及如何使用它。为了更好地理解,我们建议您自己尝试上述代码片段。
参考
- 替换一个元素到一个特定位置的矢量 - Stack Overflow 问题,
- 如何将一个元素插入一个矢量开始? - Stack Overflow 问题,
- Vectors in C++ - JournalDev Tutorial.