我想用C++设计一个矩阵n次的函数。采取递归树的方法,调用递归函数计算矩阵的n次方。可每次的输入矩阵大小并不确定,所以调用递归函数的参数个数就不确定,如何设计参数个数变化的函数???请高手指点,感激涕零。

解决方案 »

  1.   

    看一下CString中的Format的实现你就知道了
      

  2.   

    参数写成:...,用va_list va_start和va_end解参数。必须至少有一个固定参数,例如start,这个参数即使无用也需要加。如下实现变参加法:int _fnAdd(int start,...) 

          va_list arg_ptr; 
         int sum=0,t=0; 
         va_start(arg_ptr,start);             //得到参数表的首地址 
          while(t=va_arg(arg_ptr,int))sum+=t;        va_end(arg_ptr);                     
         return sum;         

      

  3.   

    这个函数定义的源文件在哪啊,我用go to defination 怎么找不到??
      

  4.   

    下面是我创建数组的一段代码:
    unsigned long int k,m;
    int i=0,j=0,n;
    cin>>n>>k>>m;
    long int** pmat=new long int*[n];
    for(i=0;i<n;i++)
    pmat[i]=new long int[n];
    for(i=0;i<n;i++)
    {
    for(j=0;j<n;j++)
    cin>>pmat[i][j];
    }
    如果像您说的用数组指针的话,是不是应该用指针的指针来控制数组变量???
      

  5.   


    用数组也没必要用二维的,类似下面:#define MAX    256    //最大能容纳的参数个数func(int *p, int iNum)
    {
       int i, data;
       //iNum是参数个数。
       for(i = 0; i < iNum; i++)
       {
           data = p[i];    //传入的参数
       }
    }
    main
    {
       int pInput[MAX], x;
       
       //给参数赋值
       ...   func(pInput, x);   //x是赋值的具体数量      
    }
      

  6.   

    我是用new建立数组的,而且数组的内存去可能不是连续的,向你这样连续执行的话可以么??
      

  7.   

    采用可变参数函数,用va_list va_start和va_end解参数。了类似于format函数实现方式。