问题
用accumulate求一个vector
源代码
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; } |