[英]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--;
}
}
迭代器使我們可以將容器視為一系列元素。
容器是什么都沒有關系。 例如vector
, set
, map
是不同的容器,但是迭代器使我們能夠處理這些容器中的元素序列,而不必擔心容器在后台如何實現。
迭代器是一個在設計上像指針一樣工作的對象。
注意:
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 ;
}
您可以進一步研究迭代器:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.