如何定义自定义类的向量类型

how to typedef a vector of a custom class?

本文关键字:向量 类型 自定义 何定义 定义      更新时间:2023-10-16

我定义了类T,并使用一个默认构造函数、一个复制构造函数和一个重载赋值操作符实现了该类

我已经试着做了如下

      #include <vector>
      //template <class Board>
      typedef std::vector<Board> t_bvector;

有和没有注释,我得到这个错误

../Piece.H:143:1: error: ‘t_bvector’ does not name a type
In file included from ../Board.C:1:0:
../Board.H:14:1: error: template declaration of ‘typedef’
In file included from ../Board.C:1:0:

我没有c++ 11,并希望保留基本的向量方法,如。insert,。size有办法解决吗?还是一个更好的STL容器的建议?

我不确定你想用template <class Board>部分做什么,但我猜你在实际代码中有一些语法错误或放错了地方。

下面是一个示例,说明您应该如何尝试设置这样的类型定义。

#include <vector>
class Board
{
public:
    int foo;
};
typedef std::vector<Board> t_bvector;

编辑

既然你已经多解释了一点:

class Board;
typedef std::vector<Board> t_bvector;
class Board
{
public:
    t_bvector SomeFunction();
};