void main()

    vector< vector<int> > s;
vector< int > s1;
int a;
int i=0;
    while(cin>>a)
 {
 s1.push_back( a );//
 s.push_back(s1); //s应该push_back vector<int>
 i++;
 if( i==5 )
 break;
     } 
    
 print(s); 
     for(i=0;i<5;i++)
 { 
 for(int j=i;j<5;j++) 
            swap(s[i][j],s[j][i]); 
    } 
    print(s); 
    return; 
}

解决方案 »

  1.   

    //我觉得应该这样付值:
    vector<vector<int> > s;
    vector< int > s1;
    for( int i=0;i<5;i++ )
    {
        for( int j=0;j<5;j++ )
            s1.push_back( j );
        s.push_back( s1 );
    }
    /////////////////////原程序///////////////////////
    #include "stdafx.h"
    #include <conio.h>
    #include<iostream> 
    #include<string> 
    #include<vector> 
    using namespace std; 
    void swap(vector<int> &a,vector<int> &b){ 
            vector<int> temp=a; 
            a=b; 
            b=temp; 

    void print(vector<vector<int> > &s){ 
            for(int i=0;i<5;i++){ 
                    for(int j=0;j<5;j++){ 
                            cout<<s[i][j]<<" "; 
                    } 
                    cout<<endl; 
            } 

    void main(){ 
            vector< vector<int> > s; 
    vector< int > s1;
            int a; 
            for(int i=0;i<5;i++)

    for( int j=0;j<5;j++ )
    {
    cin>>a ;
                    s1.push_back(a); 
                } 
    s.push_back( s1 );
            } 
            print(s); 
            for(i=0;i<5;i++){ 
                    for(int j=i;j<5;j++) 
                            swap(s[i][j],s[j][i]); 
            } 
             print(s); 
     getch();
            return; 

    //试试:)