二维向量怎样用size()啊
其实我想重载二维向量的乘法运算符
vector< vector<int> > operator * (const vector<vector<int>>&A , const vector< vector <int>> &B);
{
int m =A.size();
int n = B.size();
int p = B[0].size();
vector<vector<int>>C(m);
for(int i =1; i < m; ++i)
{
C[i].resize(p);
for(int j =1; i < n; ++j)
{
for(int k =1; i < p; ++k)
{
C[m][p] += A[m][b] * B[n][p];
}
}
}
}
主要的问题是int m =A.size(); 这句提示A是未定义的标识符,菜鸟求解
[解决办法]
那是因为有其他错误,把所有代码都贴出来吧
[解决办法]
建议你用typedef简化代码
typedef vector< vector<int> > DoubleIntVector;
[解决办法]
//在堆中开辟一个4×5的二维int数组
#include <stdio.h>
#include <malloc.h>
int **p;
int i,j;
void main() {
p=(int **)malloc(4*sizeof(int *));
if (NULL==p) return;
for (i=0;i<4;i++) {
p[i]=(int *)malloc(5*sizeof(int));
if (NULL==p[i]) return;
}
for (i=0;i<4;i++) {
for (j=0;j<5;j++) {
p[i][j]=i*5+j;
}
}
for (i=0;i<4;i++) {
for (j=0;j<5;j++) {
printf(" %2d",p[i][j]);
}
printf("\n");
}
for (i=0;i<4;i++) {
free(p[i]);
}
free(p);
}
// 0 1 2 3 4
// 5 6 7 8 9
// 10 11 12 13 14
// 15 16 17 18 19