210页习题7.14求vector 对象中所有元素之和

本文展示了一段C++代码,用于通过迭代器计算`vector<double>`对象中所有元素的总和。主要关注`getTotal`函数的实现,以及在迭代过程中`const_iterator`的使用和其与`iterator`的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//为了方便,要包含的文件会不同,但我没有删
#include <iostream>
#include <string>
#include <vector>
#include <bitset>
#include <cstring>   //和C语言的string.h其实是一个版本
#include <stdexcept>   //或用 #include <exception> 都行

using std::bitset;
using std::vector;
using std::cin;
using std::endl;
using std::cout;
using std::string;
using std::overflow_error;

//#define NDEBUG      
//---------------------------------------------------------------------------


double getTotal(vector<double>::const_iterator  beg,vector<double>::const_iterator  end)
{
    double t=0;
    while(beg!=end)
    {
  t+=*beg;
  ++beg;
    }
    return t;
}

 

    int main()
    {
 
 //建立vector
 
 cout<<"请输入多个小数用于建立vector:"<<endl;
 vector<double> dvec;
 
 double d;
 
 while(cin>>d)
 dvec.push_back (d);

    //
    //求数组之和
    double k=getTotal(dvec.begin (),dvec.end ());
  
    cout<<"它们的和是:"<<k<<endl;
 


  

 
       return 0;
    }

 /*
 210页习题7.14求vector<double> 对象中所有元素之和
 ?vector<double>::const_iterator  beg 和 const vector<double>::iterator beg之间有些什么区别呢?
 当我使用后一种是不行的,因为说++beg里的++无法跟后面的操作数,那么问题就在const符号上了。
 因为后一种为const指针,指针是不能改变的,而前一种为指向const对象的指针
 因为iterator本身为指针,前加const后,就是用const修饰指针,所以是const指针了
 
 如定义指向const对象的指针:const int* pc;  /const int *pc;
 指向普通对象的const指针:int* const cp;         /int *const cp;
 指向const对象的const指针:const int* const cpp;   /const int *const cpp;
      
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值