1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| vector<double> sous_matrice(vector<double> & a,vector<int> & b, int m, int e,int l)
{
std::vector<double> cl;
cl.reserve(m*e);
int i,j;
for(i=0;i<m;i++)
for(j=0;j<e;j++)
{
cl[i*e+j]=a[i*l+b[j]];
}
return(cl);
}
void main ()
{
int n=5,m=3,i,j;
vector<double> a,c;
vector<int> b;
a.reserve(m*n);
b.reserve(m);
c.reserve(m*m);
a[0*n+0]=1;
a[0*n+1]=1;
a[0*n+2]=4;
a[0*n+3]=5;
a[0*n+4]=1;
a[1*n+0]=2;
a[1*n+1]=3;
a[1*n+2]=6;
a[1*n+3]=2;
a[1*n+4]=4;
a[2*n+0]=3;
a[2*n+1]=2;
a[2*n+2]=4;
a[2*n+3]=0;
a[2*n+4]=0;
b[0]=1;
b[1]=2;
b[2]=3;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
cout<<a[i*n+j]<<" ";
cout<<endl;
}
c=sous_matrice(a,b,m,m,n);
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
cout<<c[i*m+j]<<" ";
cout<<endl;
}
cin.get();
cin.ignore();
} |
Partager