我想实现一个哈希或类似 PHP 的数组。哪个更好,选项 a) 或选项 b) 通过键查找元素?
(所有变量都被设置和初始化等等!)
一种)
for( i = 0; i < ary->element_cnt && found == NULL; i++ ) {
current_element = &(ary->elements[i]);
if( 0 == memcmp(current_element->key, search_key, keysize) ) {
found = current_element;
}
}
b)
for( i = 0, current_element = &(ary->elements[i]) ;
i < ary->element_cnt &&
0 != memcmp(current_element->key, searchkey, keysize);
i++, current_element = &(ary->elements[i]) );
/*found = current_element;*/
第一个更好,因为它更具可读性/可维护性?第二个会更快吗?
在一个大循环中做所有事情是“坏风格”吗?
我知道,那里有更好的搜索算法,但这不是我的问题!