C++ 如何对两个vector<double> 求和?

大致代码如下vector<double>vect1,vect2,res;vect1.push_back(1);vect1.push_back(1);vect2.push_... 大致代码如下
vector<double> vect1, vect2, res;
vect1.push_back(1);
vect1.push_back(1);

vect2.push_back(2);
vect2.push_back(2);

我想把这两个向量对应求和,放到res中,也就是:
res.at(0) = vect1.at(0) + vect2.at(0);
res.at(1) = vect1.at(1) + vect2.at(1);

我知道用循环或者迭代器遍历可以进行这样的算法,最近看到了容器算法,想用stl里面的已有的函数改进一下自己的设计
找到了accumulate(), adjacent_difference(), inner_product(), partial_sum()四个函数
但是总是组合不出自己想要的这种算法,求解,谢谢
之前想到了个笨方法,再新建一个vector<vector<double> > mat每个元素中放一个vector,再写一个对每个元素求和的函数,但是发现效率太低了
还有一个想法,就是写一个对象,能把求和累加起来,但是还没有想太通
展开
 我来答
ul0402206
2012-11-13 · TA获得超过505个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:301万
展开全部
你说的这几个函数都是对单个容器进行操作的,没有办法实现你需要的两个容器按顺序进行相关操作
你需要的应该是transform函数
transform(vect1.begin(), vect1.end(), vect2.begin(),back_inserter(vect3), plus<double>());
ssilspro
2012-11-13 · TA获得超过2625个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1701万
展开全部
用transform吧,第2种参数的
template<class T>class sumtwo{public:T operator()(const T& a,const T& b)const{return a+b;}};
transform(vect1.begin(),vect1.end(),vect2.begin(),back_inserter(res),sumtwo<double>());
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loboho
2012-11-13 · TA获得超过506个赞
知道小有建树答主
回答量:441
采纳率:100%
帮助的人:405万
展开全部
stl应该不会有这样的算法,要求两个容器大小相等,通用性不强。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
8坤坤的小窝8
2012-11-13
知道答主
回答量:12
采纳率:0%
帮助的人:11.6万
展开全部
STL的算法研究不多。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式