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

问题

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

C++.
image-2084

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*************************************************************************
    > File Name: test.10.3.cpp
    > Author: puruidong
    > Mail: 1@w1520.com
    > Created Time: 2014年06月05日
 ************************************************************************/

#include<iostream>
#include<vector>
#include<numeric>
using namespace std;

/**************************
 
    用accumulate求一个vector<int>中的元素之和.


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

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


 int main()
 {
     vector<int> veca;
     vector<int> 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来减少垃圾评论。了解我们如何处理您的评论数据