在C++ Primer中message和folder案例的实践的验证过程中遇到了关于vector容器的问题。我创建多个Message对象,然后将其指针保持在vector中没有问题,后续程序也能运行。但是如果将Message对象本身保存在vector中就无法列表初始化,也无法push_back()。请教一下是什么原因?
Message对象和vector的初始化、Message类成员的声明如图所示:
无法在push_back时自动调用构造函数,在赋值时自动调用拷贝构造函数,在remove时自动调用析构函数。
首先你的写法有问题,应该是message[i] .push_back(1)。
虽然这个不会报错,但是依然会出问题。因为此时的message[i]并没有进行初始化。所以调用push_back程序会奔溃