数组键是否确定C++中的数组大小?

Pro*_*gga 0 c++ arrays

即可存储数组中对象的一些设置.对象的id用作键.id从100000开始然后上升.如果我要为id为100 000的对象输入数据,那么cpp会自动创建从0开始的99999个空白键条目吗?

ste*_*anB 5

创建数组时确定数组大小.

要访问索引为100 000的对象,您需要具有至少该大小的数组,这将回答您的问题.

如果阵列较小,您将访问内存

数组开始地址+(索引*对象大小)

这不是一件好事.例如,下面将打印一些数据,但它是一个存储在内存中的数据,并且它在数组之外(不是一件好事):

string arr[3];
cout << arr[5] << endl;
Run Code Online (Sandbox Code Playgroud)

假设您正在谈论标准数组,如:

string arr[10];
Run Code Online (Sandbox Code Playgroud)

编译时指定了数组的大小,例如,您无法执行以下操作:

string arr[]; // this will fail to compile, no size specified
Run Code Online (Sandbox Code Playgroud)

但你做了:

string arr[] = {"1","2","3"};  // array size is 3
string arr1[3];                // array size is 3
string arr2[3] = {"1"};        // array size is 3
Run Code Online (Sandbox Code Playgroud)

如果你想为对象映射额外的参数,你最好使用std :: map,如:

class person {};
std::map<person*,int> PersonScore;
Run Code Online (Sandbox Code Playgroud)

这假设附加参数在逻辑上不是对象的一部分,否则您只需将它们添加到对象中.