一、将一个vector中的全部元素插入另一个vector中
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> ans(10,3);
vector<int> temp(20,5);
ans.insert(ans.end(),temp.begin(),temp.end());
return 0;
}
初始化大全
#include <bits/stdc++.h>
using namespace std;
int main()
{
//创建时直接赋值
vector<int> v = {0,1,2,3,4,5,6};
//使用其余的vector整体创建时初始化
vector<int> v1(v);
vector<int> v2 = v;
vector<int> v3(v.begin(),v.end());
//迭代器初始化
int k = 6,m = 100;
vector<int> v4(v.begin(),v.begin()+k);
//带参数的初始化
vector<int> v5(10);//默认生产的是全0
vector<int> v6(10,0);
vector<int> v7(k,m);//k、m可以是常数,也可以是变量
//使用数组初始化
int a[5]={1,2,3,4,5};
vector<int> v8(a,a+2);//保留a[0]、a[1]
return 0;
}
使用insert函数将temp插入到ans的末尾。
insert函数的常规使用
v.insert(p,t)
//在迭代器p所指处插入值为 t 的元素
v.insert(p,n,t)
//在迭代器p所指处插入n个值为t的新元素
v.insert(p,b,e)
//在迭代器p所指向的元素前面插入迭代器b和e标记的范围内的元素
//注意这种插入是,将[b,e)段内的值插入。
accumulate函数
#include <iostream>
#include <vector>
#include <numeric>//添加这个头文件
using namespace std;
int main()
{
vector<int> ans(10,3);
cout<<accumulate(ans.begin(),ans.end(),0);
return 0;
}
//运行结果
30
注意accumulate函数需要
accumulate(a,b,init);
1、添加 #include
2、参数有三个,前两个a,b是迭代器,最后一个init是起始值,不可省略,若是统计整个向量的和值,可以使init为0。
它只计算区间[a,b)范围内的数的和。
比如下题,是力扣里面的
1403. Minimum Subsequence in Non-Increasing Order