比方說,我有一個vector排序:C++迭代器:如何查找在索引中堆排序
std::vector v{9, 8, 0, 2, 7, 3, 2, 1}
假設我要開始在第三元素排序(索引2)才結束,所以我有一個迭代器,指向0開始和過去1結束。如果我使用索引並將函數傳遞給當前元素的索引,要找到「0」的左側子元素,我將使用2 *索引+1。
讓「ITER」是指向0迭代器,索引2.下列:
iter+1
將移動迭代器,使* ITER將現在等於2,但是,我不能動迭代器到左邊的孩子:
2*iter+1
我該如何解決此問題並將迭代器移動到正確的位置?有沒有辦法找到迭代器的索引?
難道是我還是我們早些時候得到同樣的問題? –
@EdHeal:你沒記錯。 [這是一個重複。](http://stackoverflow.com/questions/21341220/index-of-vector-iterator)似乎很少有人在發佈問題之前使用SO搜索。 – Blastfurnace