Las categorías estándar de c ++ de la biblioteca

La documentación de la biblioteca estándar utiliza un enfoque formal que vas a encontrar difícil de leer y aún más difícil de entender. La mejor manera de comenzar es romper la biblioteca estándar en trozos más pequeños. Puede clasificar las funciones de la biblioteca estándar en un número de maneras. Uno de los métodos más comunes es el uso de las siguientes categorías:

contenedores

contenedores funcionan igual que los contenedores en su casa - que poseen algo. Por ejemplo, tanto las colas y deques son tipos de contenedores. La categoría Contenedores no contiene ninguna función, pero contiene una serie de tipos que incluyen los siguientes:

basic_stringbit_vectorbitsetchar_producerdequehashlistmapmultimapmultisetpriority_queuequeueropesetsliststackvector

iteradores

iteradores enumerar algo. Al crear una lista de elementos, y luego ir a través de cheques que los elementos de la lista fuera, que está enumerando la lista. Utilización de iteradores le ayuda a crear listas de artículos y manipularlos de manera específica. El tipo de iterador se crea es importante porque algunos iteradores permiten ir sólo hacia adelante, algunos pueden ir en cualquier dirección, y algunos artículos puede elegir al azar. Cada tipo de iterador tiene su propósito específico.

La categoría Iteradores incluye una serie de tipos. Estos tipos determinan el tipo de iterador se crea en el código y las capacidades de ese iterador. A continuación se presenta una lista de los tipos de iterador:

back_insert_iteratorbidirectional_iteratorbidirectional_iterator_tagforward_iteratorforward_iterator_tagfront_insert_iteratorinput_iteratorinput_iterator_taginsert_iteratoristream_iteratoriterator_traitsostream_iteratoroutput_iteratoroutput_iterator_tagrandom_access_iteratorrandom_access_iterator_tagraw_storage_iteratorreverse_bidirectional_iteratorreverse_iteratorsequence_buffer

La biblioteca estándar también incluye una serie de funciones de iterador específica. Estas funciones le ayudan a realizar tareas tales como anticipación (incremento) del iterador por un cierto número de posiciones. También se puede medir la distancia entre el comienzo y el final del iterador. La siguiente es una lista de funciones de iterador:

advancedistancedistance_typeiterator_categoryvalue_type

algoritmos

algoritmos realizar manipulaciones de datos tales como la sustitución, la localización, o la clasificación de información. Es difícil crear una aplicación sustancial sin necesidad de utilizar una. No hay ningún tipo en la categoría Algoritmos. La siguiente es una lista de funciones de algoritmo:

accumulateadjacent_differenceadjacent_findadvancebinary_searchcopycopy_backwardcopy_ncountcount_ifdistanceequalequal_rangefillfill_nfindfind_endfind_first_offind_iffor_eachgenerategenerate_nincludesinner_productinplace_mergeiotais_heapis_sortediter_swaplexicographical_comparelexicographical_compare_3waylower_boundmake_heapmaxmax_elementmergeminmin_elementmismatchnext_permutationnth_elementpartial_sortpartial_sort_copypartial_sumpartitionpop_heappowerprev_permutationpush_heaprandom_samplerandom_sample_nrandom_shuffleremoveremove_copyremove_copy_ifremove_ifreplacereplace_copyreplace_copy_ifreplace_ifreversereverse_copyrotaterotate_copysearchsearch_nset_differenceset_intersectionset_symmetric_differenceset_unionsortsort_heapstable_partitionstable_sortswapswap_rangestransformuninitialized_copyuninitialized_copy_nuninitialized_filluninitialized_fill_nuniqueunique_copyupper_bound

funtores

funtores son una clase especial de objeto que actúa como si se trata de una función. En la mayoría de los casos, se llama a un funtor utilizando la misma sintaxis que se utiliza para una función, pero funtores posee todos los elementos buenos de los objetos, así como la capacidad de crear una instancia en tiempo de ejecución.

Funtores vienen en un número de formas. Por ejemplo, un funtor función binaria acepta dos argumentos como entrada y proporciona un resultado como salida. Funtores incluyen una serie de tipos que determinan el tipo de función crea el código:

binary_composebinary_functionbinary_negatebinder1stbinder2nddividesequal_togreatergreater_equalhashidentitylessless_equallogical_andlogical_notlogical_ormem_fun1_ref_tmem_fun1_tmem_fun_ref_tmem_fun_tminusmodulusmultipliesnegatenot_equal_topluspointer_to_binary_functionpointer_to_unary_functionproject1stproject2ndselect1stselect2ndsubtractive_rngunary_composeunary_functionunary_negate

Utilidades

Utilidades son las funciones y los tipos de servicios que realizan tareas pequeñas dentro de la biblioteca estándar. Las funciones son min (), max (), y los operadores relacionales. Los tipos son chart_traits (los rasgos de caracteres utilizados en otras operaciones de biblioteca estándar, tales como basic_string) y par (Un emparejamiento de dos valores heterogéneos).

Video: Bibliotecas de lenguaje C

adaptadores

adaptadores realizar conversiones de una especie. Ellos hacen posible adaptar un tipo de datos a otro. En algunos casos, los adaptadores de realizar la conversión de datos, tal como números de negando. La categoría incluye los adaptadores de una función, ptr_fun (). Además, la categoría incluye los adaptadores de los tipos enumerados aquí:

back_insert_iteratorbinary_composebinary_negatebinder1stbinder2ndfront_insert_iteratorinsert_iteratormem_fun1_ref_tmem_fun1_tmem_fun_ref_tmem_fun_tpointer_to_binary_functionpointer_to_unary_functionpriority_queuequeueraw_storage_iteratorreverse_bidirectional_iteratorreverse_iteratorsequence_bufferstackunary_composeunary_negate

asignadores

asignadores gestionar los recursos, normalmente la memoria. En la mayoría de los casos, no necesitará siempre de usar los miembros de la categoría asignadores. Por ejemplo, normalmente crear nuevos objetos utilizando el nuevo operador. los nuevo operador asigna memoria para el objeto y luego lo crea llamando al constructor del objeto.

Video: Librería Math.h en C++

En casos raros, como cuando se quiere poner en práctica una forma de agrupación de objetos, es posible que desee separar el proceso de asignación de memoria del proceso de construcción. En este caso, se llama construir() para llevar a cabo la tarea real de la construcción del objeto basado en su definición de clase. La categoría asignadores tiene las siguientes funciones.

constructdestroyget_temporary_bufferreturn_temporary_bufferuninitialized_copyuninitialized_copy_nuninitialized_filluninitialized_fill_n

La categoría asignadores también incluye un par de tipos. Estos tipos le ayudan a gestionar la memoria, y usted puede encontrar más uso para ellos de lo que será las funciones de esta categoría. Los tipos son

raw_storage_iteratortemporary_buffer

asignadores polimórficos

Cuando se trabaja con versiones anteriores de la biblioteca estándar, asignadores utilizan como argumentos a las plantillas crean problemas porque están obligados por tipo. Lo que esto significa es que un vector creado usando std :: vector es un tipo completamente diferente de un vector creado utilizando std :: vector, a pesar de que uno es simplemente una extensión de la otra.

los myalloc parte de la plantilla simplemente define el método utilizado para asignar memoria- no afecta realmente el tipo de datos gestionados por la plantilla. Por lo tanto, en ambos casos, que está creado una vector sostener int de datos - los tipos son los mismos. La única diferencia es el método en el que se asigna memoria (el primero utiliza las técnicas de asignación de memoria estándar, mientras que la segunda utiliza un asignador de encargo).

El uso de asignadores polimórficos elimina este problema mediante la definición de una clase base abstracta de memoria, memory_resource, que se utilizará para todos los asignadores de memoria. Esta clase abstracta define los siguientes métodos virtuales puros:

allocatedeallocateis_equal ()
Artículos Relacionados