[英]Size of array with two pointers
我有一個函數接收兩個指針,所述陣列的所述第一構件和后面的最后一個,我不能for循環使用,做,做一段時間。 如何獲得指向數組中間成員的指針? 我是初學者。
使用指針算術以元素數量計算指針之間的距離,然后除以2。然后將其添加到start
。
void foo(const int *start, const int *end)
{
assert(start != end); // avoid returning invalid pointer if list is empty
const int *middle = start + (end - start)/2;
...
}
可能會根據您要使用的算法進行一次性錯誤和調整(例如:左或右等分,如果列表僅包含1個元素,則您可能希望選擇Middle作為第一個元素(上面的代碼可以做到),但您可能想添加1來選擇超出元素的位置),但這是一般的想法,沒有循環, O(1)
復雜性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.