即可存储数组中对象的一些设置.对象的id用作键.id从100000开始然后上升.如果我要为id为100 000的对象输入数据,那么cpp会自动创建从0开始的99999个空白键条目吗?
创建数组时确定数组大小.
要访问索引为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)
这假设附加参数在逻辑上不是对象的一部分,否则您只需将它们添加到对象中.