#include<iostream>
#include<vector>
using namespace std;
class Step
{
public:
int moveid;
int row;
int col;
int killid;
};
class Board
{
public:
vector<Step> S1(10);
};
问题:10那里错误提示:应输入类型说明符
你想干啥?
不要在类的定义过程中对STL容器进行初始化,因为你的容器在定义的时候本身都还没有被构建。你懂吧,一切都放在初始化列表或则构造函数中
如下:
class Board
{
public:
vector<Step> S1;
Board() :S1(vector<Step>(10)) {
}
};
vector<Step> S1;
S1.reserve( 10 );
public:
vector S1(10);
我理解你可能想初始化S1大小么?vector是不需要初始化大小的,会自动更具需求分配;
详细使用方法如下:
详细的函数实现功能:其中vector<int> c.
c.clear() 移除容器中所有数据。
c.empty() 判断容器是否为空。
c.erase(pos) 删除pos位置的数据
c.erase(beg,end) 删除[beg,end)区间的数据
c.front() 传回第一个数据。
c.insert(pos,elem) 在pos位置插入一个elem拷贝
c.pop_back() 删除最后一个数据。
c.push_back(elem) 在尾部加入一个数据。
c.resize(num) 重新设置该容器的大小
c.size() 回容器中实际数据的个数。
c.begin() 返回指向容器第一个元素的迭代器
c.end() 返回指向容器最后一个元素的迭代器
你是想创建十个vector容器吗,如果是,应该是用[]。如果你是想初始化,那么你这样做是不行的,非静态成员的初始化应该放在构造函数中。vector
一般直接声明就可以了,不用初始化空间大小,会动态分配空间的。