我觉得好像我要对这个正确的方式,但我不断收到错误“EXC错误访问”访问类载体,载体
我有一个类person
,一切公共相当简单。
class person
{
public:
int id;
vector<float> scores;
float avgscore;
};
我然后使用新的操作者
vector<person> *people = new vector<person>[num_persons];
然后我试图访问类内的矢量作出的person
个矢量person
(*people)[current_person].scores.push_back(temp);
其中current_person
= 0,并且temp
是一个整数。
我是否正确处理矢量?
我在stackoverflow搜索周围,似乎初始化应该使用圆括号,即新的向量(num_persons);但我不知道为什么是这样,而且看起来不一致。将upvote这个答案。 –
jonathanasdf
这并不矛盾。使用[]进行初始化的* only *事物是C风格的数组。其他所有使用()(或{}用于初始化列表)。这是有道理的,因为你不会'删除'矢量指针。 – Max
@Max注意:'std :: map <>'使用'operator []()'在失败查找后进行隐式插入。其余的我同意。 – WhozCraig