起初遇到这个问题的时候便得知无法返回,那么为了达到相同的目的,该怎么办呢?
第一个想法便是
int * void() { int * want = new int[size]; //......do something return want; }
这种的好处是非常简洁,返回一个数组指针,C++是允许返回指针的,但必须在方法里面好好赋值,也就是说“do something”的时候,如果添加到want这个数组的个数是不确定的时候(此方法多次调用的时候)
就会非常的不方便,size不确定。
那么便生成了第二种想法,利用vector
vector<int *> void() { vector<int *> want; //...do something // must int * add = ? ; //want.push_back(add) return want; }
这里注意的是必须中途用指针的add去继承?的值,不能直接int add =?(会报错,无法push_back)
但是,读出want元素的时候,你回发现全是硬盘地址。。。00xxadd00,00qssdf00之类的。。。
于是最终版本
vector<int > void() { vector<int > want; //...do something // must int add = ? ; //want.push_back(add) return want; }
直接是int对象的vector即可,既满足了原来的需求(返回不定长数组),vector又有很多方便的方法可以调用。
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号