¿Cuáles son los temas importantes en C ++ que uno debe saber antes de participar en competencias de codificación?

  • La biblioteca estándar (en particular: contenedores, algoritmos)
  • Cómo funcionan los diversos métodos de entrada. Por ejemplo, tenga en cuenta que cin >> s donde s es un std::string se saltará una línea en blanco.
  • Características de presentación. Por ejemplo: la asignación dinámica es lenta y debe evitarla si puede. Además, la aritmética de coma flotante es mucho más lenta que la aritmética de enteros. Además, la forma en que las matrices multidimensionales se presentan en la memoria, porque eso determina la forma en que debe escribir sus bucles para que no pierdan continuamente el caché.
  • Comportamiento indefinido y no especificado. En particular, si tiene un comportamiento indefinido o no especificado en su programa, entonces puede funcionar perfectamente en su computadora pero fallar en el juez (o viceversa ). Por lo tanto, es importante conocer algunas cosas comunes que pueden causarlo, por ejemplo, acceder a matrices fuera de los límites.
  • Cómo funciona la inicialización. (¡Las variables globales están inicializadas en cero; las variables automáticas locales no lo son!)

Esas son las cosas que vienen a la mente de inmediato.

¿Qué competencia de codificación estás mencionando? Si se trata de una competencia de algoritmos como Topcoder y Codeforces, creo que debería ser la siguiente:
1 / Todas las estructuras de datos, como vector, lista, cola, pila, cola prioritaria, etc. Están integradas en C ++ (y Java también). Así que aprende a usarlo de manera eficiente.

2 / Codifique algunos de los algo populares para que no tenga que codificarlos nuevamente durante el concurso.

3 / Aprenda a implementar alguna programación dinámica en C ++ (aunque puede codificar en Java)

Y muchos más.

More Interesting

Cómo evaluar el esfuerzo de implementación y los costos en un nuevo proyecto de desarrollo de software

Quiero escribir un código para desenfocar una imagen. ¿Cómo escribir el código?

¿Hay una universidad no Elite en Alemania (preferiblemente cerca de Berlín que ofrezca cursos de idiomas) a la que pueda asistir para la ingeniería de software? De nosotros.

Fuera del desarrollo de Android, ¿cuáles son los principales usos de Kotlin?

Amazon, Facebook y Google prueban algunos de sus cambios de diseño front-end y back-end con un pequeño número de clientes antes de lanzarlos a todos. ¿Qué tipo de métodos y tecnología utilizan para hacer eso? ¿Es posible con Rails?

¿Vale la pena trabajar como ingeniero de software en Accenture en Letonia?

¿Cómo es trabajar en CH2M Hill?

¿Cómo funciona el software que verifica el plagio?

En un entorno de desarrollo de software, ¿siempre es mejor hacerle muchas preguntas a sus nuevos pares?

¿Desde dónde empiezo si quiero ser ingeniero de software?

¿Es sabio tomar un doble título en ingeniería de software y ciencias de la computación?

En Java, ¿qué significa 'String args []' en 'public static void main (String args [])'?

¿SemVer solo es bueno para icebergs (software con una pequeña API expuesta)?

¿Cuál es la mejor manera de organizar T-SQL en términos de patrones de reutilización / comprobabilidad / diseño?

Si eres un ingeniero de software, después de trabajar durante un tiempo en una empresa, ¿pides un aumento / promoción o simplemente esperas hasta que te lo den?