传递流功能

时间:2015-05-15 23:41:04

标签: function recursion ostream

vector<bool> retroswap (vector<bool> v)
 {
     reverse(v.begin(), v.end()) ;
     for (int i = 0 ; i < v.size() ; i++)
     {
         if (v[i] == 0)
         {
             v[i] = 1 ;
         } else {
             v[i] = 0 ;
         }
     }
     v.insert(v.begin(), 1) ;

     return v ;
 }

// Overloading the + operator
vector<bool> operator+ (vector<bool> gds, vector<bool> rs)
{
    for (int i = 0 ; i < rs.size() ; i++)
    {
        gds.push_back(rs[i]) ;
    }

    return gds ;
}


ostream& operator<< (ostream& out, vector<bool> v)
{
    for (int i = 0 ; i < v.size() ; i++)
    {
        out << v[i] << endl ;
    }

    return out ;
}

vector<bool> generate_dragon_sequence (vector<bool> v, int n, ostream& out)
 {
     if (n==1)
     {
         return v ;
     }

     vector<bool> rs = retroswap(generate_dragon_sequence(v, n-1, out)) ;

     out << generate_dragon_sequence(v, n-1, out) + rs ;

     return generate_dragon_sequence(v, n-1, out) + rs ;

 }

以上是我为学校项目所做的代码。我有一个关于将ostream对象传递给函数的问题。我正在构建一个递归函数,它根据算法生成越来越大的向量。我想要做的就是使用流对象输出最终的矢量产品

因此,在int main()中,如果我要编写generate_dragon_function(v,n,cout),它会将最终向量输出到控制台。

我想知道我该怎么办?非常感谢你们!

0 个答案:

没有答案