C++ STL vector容器创建对象时出错 2C
 #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那里错误提示:应输入类型说明符

4个回答

你想干啥?
不要在类的定义过程中对STL容器进行初始化,因为你的容器在定义的时候本身都还没有被构建。你懂吧,一切都放在初始化列表或则构造函数中
如下:

class Board
{
public:
    vector<Step> S1;
    Board() :S1(vector<Step>(10)) {

    }
}; 

你是想创建十个vector容器吗,如果是,应该是用[]。如果你是想初始化,那么你这样做是不行的,非静态成员的初始化应该放在构造函数中。vector
一般直接声明就可以了,不用初始化空间大小,会动态分配空间的。

 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()             返回指向容器最后一个元素的迭代器
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问