Curso C ++ en el centro CS, segunda parte

Computer Science Center es una iniciativa conjunta del Computer Science Club en POMI RAS, JetBrains y la Yandex Data Analysis School .

El centro existe para permitir que estudiantes talentosos y graduados se desarrollen en 谩reas de inter茅s para ellos: inform谩tica, ciencia de datos o ingenier铆a de software.

El curso C ++ en dos partes en el centro es impartido por Valery Mikhailovich Lesin , valery-l , profesor en el centro CS y magistratura conjunta ITMO y JetBrains "Ingenier铆a de Software / Ingenier铆a de Software", director t茅cnico de Simlabs .

La segunda parte ayudar谩 a dominar la mayor铆a de las capacidades de C ++ moderno. Lo m谩s probable es que no se convierta en un gur煤 al final del segundo semestre, pero la habilidad deber铆a ser suficiente para usar C ++ de manera efectiva en la mayor铆a de los proyectos, si las ventajas son aplicables all铆.

Exploraremos las nuevas caracter铆sticas del lenguaje y la biblioteca est谩ndar: mover sem谩ntica, bind / function, enable_if / if constexpr, coroutines y otros. Veamos algunas tareas t铆picas: programaci贸n multiproceso, uso de bibliotecas en Windows y Linux, y otras.

Que tengas una linda vista!

1. Biblioteca est谩ndar. Composici贸n, contenedores STL, tipos de contenedores, contenedor de vectores, iteradores, c贸mo funciona el vector. Sdt :: lista de contenedores, adaptadores, contenedores asociativos, iteraci贸n de mapas, b煤squeda e inserci贸n en el mapa. Indexaci贸n, eliminaci贸n del mapa (conjunto). Otros contenedores asociativos.


2. Mueva la sem谩ntica y el reenv铆o perfecto. Programas r谩pidos Optimizaci贸n del valor de retorno. Lvalue vs Rvalue. C贸mo distinguir un objeto temporal de uno no temporal. Conversi贸n & <-> const & <-> &&. Mover constructor frente a otros constructores. Devuelve el valor vs && de la funci贸n. Devolver objetos grandes por valor, transferir por valor. Problema de argumento de reenv铆o. Nuevas reglas para enlaces en C ++ 11. Reenv铆o perfecto.


3. Algoritmos y functores. Algoritmos est谩ndar, descripci贸n de algoritmos. Operaciones de no modificaci贸n y modificaci贸n. Ordenar y buscar. Contenedores vs iteradores. Functores est谩ndar. Impulsar gama. Concepto de rango.


4. enlace y funci贸n. Tarea: llamar a una devoluci贸n de llamada. Un poco de magia - std :: bind. C贸mo evitar copiar. ref / cref. Usando bind con functors. M茅todos de llamada. Enlace de anidamiento. std :: function. Efecto sin茅rgico de enlace y funci贸n. Rendimiento C贸mo funcionan los marcadores de posici贸n.


5. Excepciones. Formas de manejar errores. intenta ... atrapar. Tipos de excepciones Usando RAII. Pasando par谩metros. Pila de clase Garant铆as de seguridad para excepciones. Garantizado sin excepciones. Copiar pila. Requerimientos de pila reducidos. Especificaci贸n de excepciones. Operador noexcept y especificaci贸n noexcept (C ++ 11). Contenedores STL. Garant铆as y requisitos de pila.


6. A SFINAE o no a SFINAE. Selecci贸n de c贸digo seg煤n el tipo. Selecci贸n de tipo por condici贸n. Prueba de reducibilidad. Verifique la clase base. SFINAE Verifique el contenedor. Selecci贸n por tipo de propiedad.


7. Innovaciones en C ++. Funciones an贸nimas, auto, decltype, plantillas variadas, paquete de par谩metros, expansi贸n de paquete y expresi贸n de pliegue. Inicializadores de miembros de datos no est谩ticos, si constexpr.


8. Filas. Entrada / salida. Codificaci贸n (juego de caracteres). String std :: basic_string. Operaciones b谩sicas de cadena. impulsar algoritmos de cadena. Formato de archivos de texto vs binarios. Flujos de E / S, salida, entrada, estado de flujo, entrada / salida formateada. Manipuladores, secuencias de archivos.


9. El preprocesador. Uso y aplicabilidad de macros. Definici贸n de constantes, compilaci贸n condicional. Incluye guardia. Funci贸n macro Convirtiendo una ficha en una cadena, concatenando fichas. Macro multil铆nea, define predefinida. afirmar Macro variable, macro sobrecarga. Pimpl idioma.


10. Bibliotecas. Bibliotecas est谩ticas y din谩micas. Est谩tico vs Din谩mico. Descarga de bibliotecas sin vinculaci贸n previa. Funciones exportadas. Tecnolog铆a COM.


11. Multithreading. Proceso e hilos. Tipos de multitarea. Situaciones problem谩ticas. Crear secuencia El objeto de flujo es std :: thread. Funciones auxiliares Exclusi贸n mutua. Gesti贸n de cerraduras. Captura de excepciones. Rechazo de excepci贸n. Variables de condici贸n.


12. Multithreading. Parte 2. C谩lculos diferidos. Futuro y promesa. As铆ncrono y Futuro. Cola de eventos / mensajes. Contratos, conceptos.


Primera parte del curso

Source: https://habr.com/ru/post/473484/


All Articles