std::ptrdiff_t
Aus cppreference.com
![]() | This page has been machine-translated from the English version of the wiki using Google Translate. The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
definiert in Header <cstddef> | ||
typedef/*implementation-defined*/ ptrdiff_t; | ||
std::ptrdiff_t ist die Ganzzahl Typ des Ergebnisses der Subtraktion zweier Zeiger .
Original:
std::ptrdiff_t is the signed integer type of the result of subtracting two pointers.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten]Notes
std::ptrdiff_t für Zeigerarithmetik und Indizierung von Arrays verwendet werden, wenn negative Werte möglich sind. Programme, die andere Typen wie int verwenden, kann fehlschlagen bei, zB 64-Bit-Systemen, wenn der Index INT_MAX übersteigt oder wenn es auf 32-Bit modulare Arithmetik setzt .
Original:
std::ptrdiff_t is used for pointer arithmetic and array indexing, if negative values are possible. Programs that use other types, such as int, may fail on, e.g. 64-bit systems when the index exceeds INT_MAX or if it relies on 32-bit modular arithmetic.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Beim Arbeiten mit der C + +-Bibliothek Behälters, der richtige Typ für die Differenz zwischen Iteratoren ist das Element typedef difference_type, was häufig gleichbedeutend mit std::ptrdiff_t .
Original:
When working with the C++ container library, the proper type for the difference between iterators is the member typedef difference_type, which is often synonymous with std::ptrdiff_t.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Nur Zeiger auf Elemente des gleichen Array (einschließlich der Zeiger ein über das Ende des Arrays) können voneinander subtrahiert werden .
Original:
Only pointers to elements of the same array (including the pointer one past the end of the array) may be subtracted from each other.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Wenn eine Anordnung so groß ist (größer als PTRDIFF_MAX Elemente, aber weniger als SIZE_MAX Bytes), dass die Differenz zwischen zwei Zeiger eventuell nicht darstellbar als std::ptrdiff_t, ist das Ergebnis der Subtraktion zweier solcher Zeiger spezifiziert .
Original:
If an array is so large (greater than PTRDIFF_MAX elements, but less than SIZE_MAX bytes), that the difference between two pointers may not be representable as std::ptrdiff_t, the result of subtracting two such pointers is undefined.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Bei char Arrays kürzer als PTRDIFF_MAX, std::ptrdiff_t fungiert als signierte Gegenstück std::size_t: sie speichern kann die Größe des Arrays jeder Art und ist auf den meisten Plattformen, gleichbedeutend mit std::intptr_t) .
Original:
For char arrays shorter than PTRDIFF_MAX, std::ptrdiff_t acts as the signed counterpart of std::size_t: it can store the size of the array of any type and is, on most platforms, synonymous with std::intptr_t).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten]Beispiel
#include <cstddef>int main(){conststd::size_t N =100;int* a = new int[N];int* end = a + N;for(std::ptrdiff_t i = N; i>0;--i)*(end - i)= i; delete[] a; }
[Bearbeiten]Siehe auch
vorzeichenloser Ganzzahltyp, der vom Operator sizeof zurückgegeben wird Original: unsigned integer type returned by the sizeof operator The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (typedef) | |
Abstand zwischen dem Beginn eines Standard-Layout-Typs und der benannten Member-Variable in Byte Original: byte offset from the beginning of a standard-layout type to specified member The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funktionieren Makro) |