相关文章推荐
眉毛粗的回锅肉  ·  ASP.NET 使用Ajax - 谦行 - 博客园·  1 年前    · 
机灵的鸡蛋面  ·  Ajax请求导出Excel的问题【ajax不 ...·  1 年前    · 
叛逆的小蝌蚪  ·  c# - group by and sum ...·  2 年前    · 
任性的香瓜  ·  如何解析和匹配多个词组·  2 年前    · 
Code  ›  C++中vector数组的求平均值函数average()定义问题开发者社区
数组 vector vector初始化
https://cloud.tencent.com/developer/article/1785636
腼腆的企鹅
2 年前
作者头像
用户7886150
0 篇文章

C++中vector数组的求平均值函数average()定义问题

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > bit哲学院 > C++中vector数组的求平均值函数average()定义问题

C++中vector数组的求平均值函数average()定义问题

作者头像
用户7886150
修改 于 2021-02-05 10:03:35
3.4K 0
修改 于 2021-02-05 10:03:35
举报

参考链接: C++程序使用数组计算数字平均值

#include <iostream>

#include<vector>

#include<stdio.h>

using namespace std;

double average(double *arr){

int len = (*arr).size;

int sum = 0;

int i;

for ( i = 0;i < len; i++){

sum += i;

}

return sum / len;

}

int main() {

unsigned n;

cout<<"n = ";

cin>>n;

vector<double> arr(n);

cout<<"Please input"<<n<<"real numbers:"<<endl;

for ( unsigned i = 0; i < n; i++)

cin>>arr[i];

cout<<"Average = "<< average(arr)<<endl;

return 0;

}

以上这个失败的代码

double中int len的报错:Member reference base type 'double' is not a structure or union

main中coutAverage中对average()的报错:No matching function for call to 'average'

main是抄的视频里的,average是视频里抄完但没有average定义然后去百度抄的但不是数组输入而是输入*x和len的,然后自己改的输入vector数组的

但很显然没改对

我现在根本就不了解vector怎么用

下面这个是视频的代码

我再去看看vecotr的用法,以及average是要自己写的话怎么写,还是要导入什么库...

(1分钟后)

原来视频离我暂停的地方后面马上就讲average函数了...

average()函数这里确实只是接受了一个对象引用(arr),不知道这里面的元素个数

但是在函数内for循环需要时可以调用arr的函数" .size() "

这个" .size() "是vector对象的函数,返回函数个数来控制循环

正确的定义average()及完整代码如下

//计算数组arr中元素的平均值

double average(const vector<double> &arr)

{

double sum = 0;

for (unsigned i = 0; i < arr.size(); i++)

sum += arr[i];

return sum / arr.size();

}

int main() {

unsigned n;

cout<<"n = ";

cin>>n;

vector<double> arr(n);

cout<<"Please input"<<n<<"real numbers:"<<endl;

for ( unsigned i = 0; i < n; i++)

cin>>arr[i];

cout<<"Average = "<< average(arr)<<endl;

return 0;

}

然后视频讲了个我没完全看懂的功能

代码如下

//基于范围的for循环配合auto举例

#include <vector>

#include <iostream>

int main()

{

std::vector<int> v = {1,2,3};

for (auto i = v.begin();i != v.end(); ++i)

std::cout<<*i<<std::endl;

for (auto e : v)//每次循环e都会从v中取出一个数组元素来进行处理,

std::cout<<e<<std::endl;

}

这个 " e : v " 的用法我是第一次见,说是可以每次循环时候,e 都会从 v 中取出一个数组元素来进行处理

所以第一个for里的*i的作用是什么呢?为什么指针感觉用的随随便便看不到用处?

i = v.begin();i != v.end() 这个我看懂了,挺巧妙的,这个.begin()和.end()也都是vector数组的功能

用auto确实很方便,因为不知道从vector数组中去取出来的可能是什么数

我想出来了为什么要用i的指针了

因为i是在for循环的第一个初始化中当场定义的

i = v.begin()按我的观察,这个v.begin()返回的是一个地址

是vector数组v第一个元素的地址

然后后面v.end()是vector数组v最后一个元素的地址

因为i都是vector数组v中元素的地址,故要输出数组元素的话,要用*i,取的是在i这个地址的元素的值

没毛病!

本文系转载, 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

编程算法
c++

本文系 转载 , 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

编程算法
c++
评论
登录 后参与评论
0 条评论
热度
最新
登录 后参与评论
关于作者
用户7886150
0
文章
0
累计阅读量
0
获赞
前往专栏
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档

Copyright © 2013 - 2023 Tencent Cloud.

All Rights Reserved. 腾讯云 版权所有

登录 后参与评论
 
推荐文章
眉毛粗的回锅肉  ·  ASP.NET 使用Ajax - 谦行 - 博客园
1 年前
机灵的鸡蛋面  ·  Ajax请求导出Excel的问题【ajax不能下载文件】_export2excel请求完不下载文件-CSDN博客
1 年前
叛逆的小蝌蚪  ·  c# - group by and sum using linq - Stack Overflow
2 年前
任性的香瓜  ·  如何解析和匹配多个词组
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号