std::ptrdiff_t
Da 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. |
Definido no cabeçalho <cstddef> | ||
typedef/*implementation-defined*/ ptrdiff_t; | ||
std::ptrdiff_t é o tipo inteiro assinado do resultado da subtracção de dois ponteiros.
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.
[editar]Notas
std::ptrdiff_t é usado para aritmética de ponteiro e indexação de matriz, se os valores negativos são possíveis. Programas que usam outros tipos, como int, pode falhar em, por exemplo, Sistemas de 64 bits em que o índice excede INT_MAX ou se se baseia em 32 bits aritmética modular.
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.
Ao trabalhar com o C + + recipiente biblioteca, o tipo adequado para a diferença entre iteradores é o difference_type membro typedef, que muitas vezes é sinônimo de 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.
Somente ponteiros para os elementos da mesma matriz (incluindo o ponteiro um após o final da matriz) podem ser subtraídos uns dos outros.
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.
Se uma matriz é tão grande (maior do que os elementos PTRDIFF_MAX, mas menos do que SIZE_MAX bytes), que a diferença entre dois ponteiros não podem ser representados de forma std::ptrdiff_t, o resultado da subtracção de dois ponteiros tais é indefinido.
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.
Para matrizes de caracteres mais curtos do que PTRDIFF_MAXstd::ptrdiff_t, actua como o duplicado assinado std::size_t: ele pode armazenar o tamanho da matriz de qualquer tipo e é, na maioria das plataformas, sinónimo de 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.
[editar]Exemplo
#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; }
[editar]Veja também
tipo inteiro sem sinal retornado pelo operador sizeof 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) | |
byte offset do início de um tipo padrão de disposição-membro especificado 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. (função macro) |