| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2278 人关注过本帖
标题:C++初学者真诚求高手指点,万谢万谢!
取消只看楼主 加入收藏
dyyuibe
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
C++初学者真诚求高手指点,万谢万谢!
请看一下程序:
#include "stdafx.h"
#include <iostream>
#include<fstream>
#include<vector>
#include<cmath>
using namespace std;
class MVector
{
  // storage for the new vector class
  std::vector<double> v;
  public:
    // constructor
    explicit MVector(){};
    explicit MVector(int n):v(n){};
    explicit MVector(int n,double x):v(n,x){};
    // destructor
    ~MVector(){};
    // equate vectors;
    MVector& operator=(const MVector& X)
    {if(&X==this)return *this;v=X.v;return *this;};
    // access data in vector
    double& operator[](int index){return v[index];};
    // access data in vector (const)
    double operator[](int index) const {return v[index];};
    // size of vector
    int size() const {return v.size();};
 void push_back(double x){v.push_back(x);}
}; // end class MVector

    void runningaverage(const MVector &v,int m,int p)
 {
      MVector runningaverage(v.size()-m-p);
 cout << " runningaverage:= ( ";

   for(int i=0;i<=runningaverage.size();i++)
   {
    double sum=0.;
    for(int j=i;j<=i+m+p;j++){sum+=v[j];}
    runningaverage[i]=sum/(m+p+1);
    cout << runningaverage[i] << " " ;
   }
cout << ")\n";

 }
   
int main(int argc, char** argv)
{
 MVector x;
    x.push_back(1.2);
 x.push_back(2.1);
 x.push_back(1.9);
    x.push_back(3.4);
 x.push_back(3.9);
 x.push_back(2.7);
 x.push_back(1.6);
 x.push_back(2.3);
 x.push_back(2.4);
 cout << " x:= ( ";
 for (int i=0;i<x.size();i++)
  cout << x[i] << "  ";
 cout << ")\n";
 runningaverage(x,2,1);
}
先说下我想求一个数列的移动平均数runningaverage,其定义见附件的图。
之前都是好好,Class MVector的部分是照搬老师的,完全没有问题,问题出现在加了runningaverage函数以后,所以你仔细看看runningaverage的循环。结果是能运行出来的,就是跳出俩窗口说
1、Expression:vector subscript out of range.
2、Expression:("Standard C++ libraries out of range",0)
为什么会这样呢?不明白。求解答。
万谢万谢!!
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 万谢万谢 真诚 
2010-11-15 10:09
dyyuibe
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-15
收藏
得分:0 
回复 2楼 玩出来的代码
什么意思?我才学了俩月不明白。

什么叫容器过界?

那还有救吗?

要怎么改才能把这个running average算出来呢?
2010-11-15 18:29
dyyuibe
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-15
收藏
得分:0 
回复 3楼 dyyuibe
啊!!!好快好及时

谢谢你!!
2010-11-15 18:54
dyyuibe
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-15
收藏
得分:0 
回复 4楼 m21wo
不好意思,太激动了手一抖点回复点错了,回给自己那儿去了。

再次谢谢你!
2010-11-15 19:09
快速回复:C++初学者真诚求高手指点,万谢万谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019443 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved