Czy można bezpiecznie zapamiętywać z podwójnej tablicy do macierzy float?Pamięć C++ z tablicy podwójnej do macierzy float
Odpowiedz
Zależy od tego, co chcesz. Wartości z pewnością nie zostaną zachowane. Jeśli potrzebujesz tego, użyj std::copy
.
#include <algorithm>
int main()
{
double a[] = {1.618, 3.1416, 2.7, 0.707, 1.0};
float b[5];
std::copy(a, a + 5, b);
}
nr
Komentarze muszą mieć co najmniej 15 znaków, ale to nie wystarcza do odpowiedzi? Dziwne :) – fredoverflow
Odpowiedzi muszą mieć co najmniej 15 znaków :) –
@Daniel Daranas: Haha! Właśnie zobaczyłem twój brzydki hack, aby "pokonać" ograniczenia. Clever;) – ereOn
Problemem jest to, że nie ma gwarancji, że binarna reprezentacja kompilator o double
jest odpowiednikiem reprezentacja float
. Aby używać typów wielobajtowych, jest to, że podstawowa reprezentacja musi być taka sama (ten sam układ). Możesz bezpiecznie skopiować float
do float
, int
do int
i double
do.
Jesteś są przeznaczone dla zachowanie niezdefiniowane gdy typ źródła nie pasuje do typu odbiorcy, takie jak kopiowanie z long
do char
lub float
do double
. Funkcja memcpy
nie dokonuje żadnej konwersji ani nie wykonuje żadnych promocji. Po prostu kopiuje.
W ogólnym przypadku - nie.
W szczególnych przypadkach na danej platformie reprezentacja float
i double
może być taka sama, a kopia się powiedzie. Ale i tak nie ma to sensu praktycznego.
- 1. Definiowanie podwójnej macierzy bez ustalonego rozmiaru?
- 2. Wycieki pamięci przy użyciu macierzy podwójnej
- 3. Pamięć macierzy Mysql
- 4. Inicjalizacja macierzy float na konstrukcji
- 5. Funkcja C++ do znalezienia maksymalnej wartości w tablicy podwójnej?
- 6. Skopiuj zawartość tablicy int do podwójnej tablicy w Javie?
- 7. C: Prawidłowo uwalniając pamięć wielowymiarowej tablicy
- 8. Wyszukaj najbliższą wartość w tablicy podwójnej w C++?
- 9. C++ Czy usunąć pamięć tablicy bez nawiasów?
- 10. smyczkowy naukowej notacji C++ do podwójnej konwersji
- 11. Uzewnętrznianie danych z macierzy Eigen
- 12. Jak "skopiować" operację macierzy do innej tablicy?
- 13. Nie można przekonwertować z podwójnej na zmienną
- 14. Zrozumienie podwójnej konwersji do int64_t
- 15. .NET - Kopiowanie z niezarządzanej macierzy do niezarządzanej tablicy
- 16. Konwertuj obraz macierzy pływalności do formatu użytego dla opencv
- 17. Czy jest jakiś skrótowy sposób na uzyskanie float z tablicy?
- 18. Znajdź duplikat macierzy wewnątrz tablicy
- 19. C++ czytanie z pliku tekstowego do tablicy/ciągu znaków
- 20. Tablica bajtów do float
- 21. przekazujących typu float z funkcji w C
- 22. wskaźnik do tablicy C++
- 23. Obiekt C# do tablicy
- 24. odejmowania n wymiary K z tablicy macierzy n, k wymiary
- 25. Powróć do tablicy C++ do C#
- 26. napisać 2d tablicy do pliku w C
- 27. R, wybierz sekwencję macierzy podrzędnej z wysokiej tablicy wymiarowej
- 28. C++: pamięć wartości rvalue
- 29. Optymalizacja pamięci podręcznej Transpozycja macierzy: C
- 30. Skrócić numer cyfry podwójnej wartości w C#
Zależy od tego, co masz na myśli, bezpiecznie. –