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

简单的问题,找不出原因
#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; 
}