#include <iostream>using namespace std;void printArr(int* arr){ int* pBegin = begin(arr); int* pEnd = end(arr); while(pBegin != pEnd) { cout << *pBegin << endl; ++pBegin; }}int main(){ int arr[] = { 1, 5, 7, 3, 9, 2 }; // Почему так можно, каким образом begin и end знают где конце а где начало ?; int* pBegin = begin(arr); int* pEnd = end(arr); while(pBegin != pEnd) { cout << *pBegin << endl; ++pBegin; } // А так нельзя! printArr(arr);}
#include <iostream>using namespace std;void printArrSize(int arr[]){ cout << "Function array size: " << sizeof(arr) << endl;}int main(){ int arr[] = { 1, 5, 7, 3, 9, 2 }; cout << "Size: " << sizeof(arr) << endl; printArrSize(arr);}
C++ (Qt)void Foo1( int arr[3] );void Foo2( int * arr );
C++ (Qt)#include <iostream> using namespace std; template <class Array>void printArr(Array arr_pointer){ Array& arr = *reinterpret_cast<Array*>(arr_pointer); auto pBegin = begin(arr); auto pEnd = end(arr); while (pBegin != pEnd) { cout << *pBegin << endl; ++pBegin; }} int main(){ int arr[] = {1, 5, 7, 3, 9, 2}; printArr<decltype(arr)>(arr);}
C++ (Qt)#include <iostream> using namespace std; template <class Array>void printArr(Array& arr){ auto pBegin = begin(arr); auto pEnd = end(arr); while (pBegin != pEnd) { cout << *pBegin << endl; ++pBegin; }} int main(){ int arr[] = {1, 5, 7, 3, 9, 2}; printArr(arr);}
C++ (Qt)void Foo1( int (& arr)[3] );