首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

简单的有关问题,找不出原因

2012-03-21 
简单的问题,找不出原因#include iostream#includevectorusing namespace stdint main(int argc, char

简单的问题,找不出原因
#include <iostream>
#include<vector>
using namespace std;

int main(int argc, char *argv[])
{
   
  vector<int> v;
int a[10]={6,3,7,1,4,8,2,9,11,5};
for(int i=0;i<10;i++)
v[i]=a[i];
for(int i=0;i<v.size();i++)
v[i]=v[i]*v[i];
int sum=0;
for(int i=0;i<v.size();i++)
sum+=v[i];
sum=sum/v.size();
cout<<sum;
  system("PAUSE");
  return EXIT_SUCCESS;
}
编译通过了,但运行时总是提示内存不能written,不知道什么原因,无限郁闷中....

[解决办法]


v.size() = 0
[解决办法]
你这在我机子上根本通不过编译
[解决办法]


加了一句,因为不太懂相关语法,请优化

C/C++ code
#include  <iostream > #include <vector > using namespace std; int main(int argc, char *argv[]) {     vector <int> v ;    v.resize(10);    int a[10]={6,3,7,1,4,8,2,9,11,5};     for(int i=0;i <10;i++)         v[i]=a[i];     for(int i=0;i <v.size();i++)         v[i]=v[i]*v[i];     int sum=0;     for(int i=0;i <v.size();i++)         sum+=v[i];    sum=sum/v.size();     cout << sum;     return EXIT_SUCCESS; }
[解决办法]

这里的i可以用类型unsigned int比较好,否则,警告也很多
[解决办法]
#include <iostream > 
#include <vector > 
using namespace std; 

int main(int argc, char *argv[]) 

vector <int > v; 
int a[10]={6,3,7,1,4,8,2,9,11,5}; 
for(int i=0;i <10;i++) 
v.push_back(a[i]);
// v[i]=a[i]; 
for( i=0;i <v.size();i++) 
v[i]=v[i]*v[i]; 
int sum=0; 
for( i=0;i <v.size();i++) 
sum+=v[i]; 
sum=sum/v.size(); 
cout <<sum; 
system("PAUSE"); 
return EXIT_SUCCESS; 

呵呵
class vector
{
^^^^^^
reference operator[](size_type pos);
const_reference operator[](size_tye_pos);


}
vector::reference 作为控制序列中元素的引用
vector::reference 作为控制序列的元素引用常量
这些都是引用.
要先初始化后才能够作为a[i]的引用

[解决办法]

针对3楼的代码作了改进

C/C++ code
#include  <iostream > #include <vector > using namespace std; int main(int argc, char *argv[]) {     vector <int> v(10);    int a[10]={6,3,7,1,4,8,2,9,11,5};     for(int i=0;i <10;i++)         v[i]=a[i];     for(int i=0;i <v.size();i++)         v[i]=v[i]*v[i];     int sum=0;     for(int i=0;i <v.size();i++)         sum+=v[i];    sum=sum/v.size();     cout << sum << endl;     return EXIT_SUCCESS; } 

热点排行