Clase de CArray
Admite matrices que son como las matrices de C, pero puede reducir y crecer dinámicamente según sea necesario.
template < class TYPE, class ARG_TYPE = const TYPE& >
class CArray :
public CObject
Parámetros
TYPE
El parámetro de plantilla que especifica el tipo de objetos almacenados en la matriz.TYPE es un parámetro devuelto por CArray.ARG*_*TYPE
El parámetro de plantilla que especifica el argumento escribe que se utiliza para tener acceso a los objetos almacenados en la matriz.a menudo una referencia a TYPE.ARG_TYPE es un parámetro que se pasa a CArray.
Members
Constructores públicos
Name |
Descripción |
---|---|
Crea una matriz vacía. |
Métodos públicos
Name |
Descripción |
---|---|
Agrega un elemento al final de la matriz; aumenta la matriz en caso necesario. |
|
Anexa otra matriz a la matriz; aumenta la matriz en caso necesario |
|
Copia otra matriz a la matriz; aumenta la matriz en caso necesario. |
|
Devuelve una referencia temporal a puntero de elemento dentro de la matriz. |
|
Libera toda la memoria no utilizada sobre el límite superior actual. |
|
Devuelve el valor en el índice especificado. |
|
Obtiene el número de elementos en esta matriz. |
|
Permite el acceso a los elementos de la matriz.puede ser NULL. |
|
Obtiene el número de elementos en esta matriz. |
|
Devuelve el índice válido mayor. |
|
Inserta un elemento (o todos los elementos en otra matriz) en el índice especificado. |
|
Determina si la matriz está vacía. |
|
Quita todos los elementos de esta matriz. |
|
quita un elemento en un índice específico. |
|
Establece el valor en el índice especificado; matriz no permitido crecer. |
|
Establece el valor en el índice especificado; aumenta la matriz en caso necesario. |
|
Establece el número de elementos que se contendrán en esta matriz. |
Operadores públicos
Name |
Descripción |
---|---|
Establece u obtiene el elemento en el índice especificado. |
Comentarios
Los índices de matriz siempre empiezan en la posición 0.Puede decidir si corregir el límite superior o permitir a la matriz para expandir cuando agregue elementos más allá del límite de la actual.La memoria se asigna uno junto al límite superior, aunque algunos elementos es null.
[!NOTA]
La mayoría de los métodos que cambian el tamaño de un objeto de CArray o agregue elementos al uso memcpy_s a los elementos de movimiento.Esto supone un problema porque memcpy_s no es compatible con ningún objeto que requieren el constructor llamar.Si los elementos de CArray no son compatibles con memcpy_s, debe crear un nuevo CArray de tamaño adecuado.Debe utilizar CArray::Copy y CArray::SetAt para rellenar la nueva matriz porque esos métodos utilizan un operador de asignación en lugar de memcpy_s.
Como con la matriz de C/C++., tiempo de acceso para un elemento indizado CArray es constante y es independiente del tamaño de la matriz.
Sugerencia |
---|
Antes de utilizar una matriz, utilice SetSize para establecer su tamaño y para asignar memoria para ella.Si no utiliza SetSize, agregar elementos a la matriz hace con frecuencia que se reasignara y copiar.La reasignación frecuente y la copia son ineficaces y pueden fragmentar la memoria. |
Si necesita un volcado de elementos individuales en una matriz, debe establecer la profundidad del objeto de CDumpContext a 1 o mayor.
Algunas funciones miembro de las funciones globales de esta de la clase auxiliar de llamada que se deben personalizar para la mayoría de utilizan la clase de CArray .Vea el tema aplicaciones auxiliares de la clase de colección en la sección de macros y Globals MFC.
Derivación de la clase array es como la derivación de lista.
Para obtener más información sobre cómo utilizar CArray, vea el artículo colecciones.
Jerarquía de herencia
CArray
Requisitos
Header: afxtempl.h