C++矢量矢量

Mik*_*ike 2 c++ vector

我正在尝试编写一个程序,该程序使用基类来定义解决简单问题的算法.我使用一个整数向量作为"游戏板".我的问题是如何创建一个返回游戏板矢量的函数get_moves?

这是我对该函数的代码:

std::vector< <std::vector<int> > takeaway::generateMoves( std::vector<int> currBoard ) {


    if( currBoard[0] == 1 || currBoard[0] == 2 ) {
       moves.push_back( 1 );
    }
    else if( currBoard[0] == 3 ) {
       moves.push_back( 2 );
    }
    else if( currBoard[0] == 4 ) {
       moves.push_back( 3 );
    }
    else {
      moves.push_back( 1 );
      moves.push_back( 2 );
      moves.push_back( 3 );
    }

    std::vector< <std::vector <int > > toReturn( moves );

     for( int i = 0; i < moves.size(); i++ ) {

      std::cout << "MOVES: " << moves[i] << std::endl;
    }

  return toReturn;
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

takeaway.cpp:55:错误:模板参数1无效takeaway.cpp:55:错误:模板参数2无效

所以我的问题是如何正确创建和返回向量向量?

riw*_*alk 5

您的模板声明中有太多<\n'.

std::vector< std::vector<int> > takeaway::generateMoves( std::vector<int> currBoard ) 
{

    if( currBoard[0] == 1 || currBoard[0] == 2 ) {
       moves.push_back( 1 );
    }
    else if( currBoard[0] == 3 ) {
       moves.push_back( 2 );
    }
    else if( currBoard[0] == 4 ) {
       moves.push_back( 3 );
    }
    else {
      moves.push_back( 1 );
      moves.push_back( 2 );
      moves.push_back( 3 );
    }

    std::vector< std::vector<int> > toReturn;
    toReturn.push_back( moves );

     for( int i = 0; i < moves.size(); i++ ) {

      std::cout << "MOVES: " << moves[i] << std::endl;
    }

    return toReturn;
}
Run Code Online (Sandbox Code Playgroud)

可能会有更多,但这是其中之一.