简单的有关问题,找不出原因
简单的问题,找不出原因
#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
------解决方案--------------------
你这在我机子上根本通不过编译
------解决方案--------------------
加了一句,因为不太懂相关语法,请优化
#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; }