簡體   English   中英

使用指針反轉數組

[英]reverse the arrays using pointers

我正在從topcoder網站閱讀STL教程。 該代碼是在解釋迭代器時給出的。 他們在這里比較地址以反轉陣列。

我沒有得到它,它如何工作? 迭代器是否也與對地址(而不是元素)進行操作的方式相同?

void reverse_array(int *A, int N) {
    int *first = A, *last = A+N-1;
    while(first < last) {
        Swap(*first, *last);
        first++;
        last--;
    }
}

迭代器使我們可以將容器視為一系列元素。

容器是什么都沒有關系。 例如vectorsetmap是不同的容器,但是迭代器使我們能夠處理這些容器中的元素序列,而不必擔心容器在后台如何實現。

迭代器是一個在設計上像指針一樣工作的對象。

注意: operator<<()對於迭代器不會重載

如果要反轉數組,請使用STL嘗試以下操作:

#include <iostream>
#include <array>
using namespace std;

int main(){
    array<int,10> arr{ 1,2,3,4,5,6,7,8,9,10 };

    reverse(arr.begin(), arr.end());

    for (const auto &elem : arr) 
        cout << elem << " ";

return 0 ; 
}

您可以進一步研究迭代器:

https://www.geeksforgeeks.org/iterators-c-stl/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM