C++,对象的向量

Mik*_*ike 0 c++ oop vector

在c ++中,使用对象向量是一个好主意吗?如果没有,这个c ++代码出了什么问题?

#include <vector>

using namespace std;

class A {};

int main() {

        vector<A*> v ( new A);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

来自g ++:

13:错误:A*' to无符号int 转换无效 '

Ree*_*sey 11

std :: vector的构造函数采用初始长度,而不是元素.

这意味着你通常会这样做:

vector<A*> v(1); // Initialize to length 1
v.push_back( new A() ); // Add your element...
Run Code Online (Sandbox Code Playgroud)

您遇到编译器错误,因为在您的系统上,该错误size_type被定义为unsigned int.它试图使用那个构造函数,但是失败了,因为你传递了一个指向A的指针.