std::array, c++11, wydobycie wskaznika bez rzutowania

0

Mam obiekt typu array (C++11)

std::array<int, 3> a2;

Jak wydobyć z niej wskaźnik

int *a2

bez rzutowania?

1

a2.data()

dokumentacja nie boli: http://en.cppreference.com/w/cpp/container/array/data

0

Dzięki. A powiedziałbyś tylko jeszcze jak to zrobić dla dwuwymiarowej tablicy? (zarowno deklaracja array jak i wydobycie int**)

1

Tablica dwuwymiarowa to nie int**

0
std::array<std::array<int, 3>, 5> arr2d; 

Nie pamiętam czy to nie jest od standardu C++14.

1

std::array jest jednowymiarowa.
możesz zrobić array<array<cośtam, X>, Y>.

ale pytanie dlaczego chcesz używać std::array i jednocześnie wskaźnika?

0
Mikilll napisał(a):

Np. mam funkcje ktora przyjmuje int* x i chce przekazac array

array<array<int>> może być przekazana jako dwuwymiarowa tablica int[X][Y] ale nie jako tablica wskaźników int**. to zupełnie dwie różne rzeczy.

1

Znów to samo się zaczyna.

Nie, nie, nie. Nie potrzebujesz żadnych tablic "wielowymiarowych". Zawsze używaj jednowymiarowej tablicy i odpowiednich funkcji dostępowych, które będą ją traktować jak wielowymiarową. Napisz prostą klasę do tego, znajdź w Internecie, cokolwiek.

Zapomnij o jakichkolwiek int **.

1 użytkowników online, w tym zalogowanych: 0, gości: 1