性能方面(C ++),使用小数位前引用第一行的数字以及引用该列的小数位后面的数字,访问数组会更快(和/或接受)吗?
例如:
map<float,int> myarray;
myarray[1.0001]=4;
myarray[1.0002]=5;
myarray[1.0003]=2;
myarray[2.0001]=7;
myarray[2.0002]=6;
myarray[2.0003]=3;
VS:
int myarray[100][1000];
myarray[1][1]=4;
myarray[1][2]=5;
myarray[1][3]=2;
myarray[2][1]=7;
myarray[2][2]=6;
myarray[2][3]=3;
答案 0 :(得分:3)
首先,除了可以精确表示为signup_form = UserCreationForm()
login_form = AuthenticationForm()
context["signup_form"] = signup_form
context["login_form"] = login_form
s的特定十进制数的子集外,您的方法不起作用。例如,float
实际上表示为1.0001
,因此如果您计算索引,则可能会得到一个不匹配的略有不同的表示形式;这会在访问1.00010001659393310546875
时产生误报。
就性能而言,map
将是O(log 2 n),而访问2D数组将是O(1)。此外,它也会占用更多内存,因为树为树节点占用空间,而数组则无需开销。