C++:算法计算容器之和

问题

用accumulate求一个vector中的元素之和.[这里的vector可以是其他容器,例如list],及比较两个容器的元素是否相同.

C++.
image-2084

源代码

/*************************************************************************
> File Name: test.10.3.cpp
> Author: puruidong
> Mail: 1@w1520.com
> Created Time: 2014年06月05日
************************************************************************/

#include
#include
#include
using namespace std;

/**************************

用accumulate求一个vector中的元素之和.

*********************************/

//比较两个容器的元素是否相同,应首先保证两个容器长度一样.
//因为equal(别扭,java的是equals...)利用迭代器完成操作,
//因此可以通过调用equal来比较两个不同类型的容器中的元素,
//而且元素类型也不必一样.
//*************************
//只要我们能用==来比较两个元素类型即可.
bool eqvector(vector v1,vector v2)
{
bool cho = false;
if(v1.size()==v2.size())
{
cho = equal(v1.cbegin(),v1.cend(),v2.cbegin());
// return cho;
}
return cho;
}

int main()
{
vector veca;
vector vec;
int sa;
cout << "请输入int型数字:" << endl; while(cin >> sa)
{
vec.push_back(sa);
veca.push_back(sa);
}
//使两个vector不相等.veca.push_back(10);
cout << "两个vector比较:" << eqvector(vec,veca) << endl; auto result = accumulate(vec.cbegin(),vec.cend(),0); cout << "vector之和是:" << result << endl; return 0; }

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据