codedamn

Complete guide to using C++ for competitive programming

Complete guide to using C++ for competitive programming

C++ is one of the oldest and most popular languages, and it is also popular in competitive programming because of its fast I/O process and libraries.

Competitive programming helps you develop problem-solving skills. You will improve your solution thinking and writing clean and short code skills.

Top MNCs and startups look for candidates with good problem-solving skills, regardless of whether you are from tier 1 or tier 3 college. If you are good at competitive programming, it will help you crack coding interviews.

This article explains why you should choose C++ for your competitive programming journey. 

Before that, let’s understand what competitive programming is.

What is competitive programming?

Competitive programming is a code competition for solving a given problem using the best algorithm within the shortest time. Which adheres to time and space complexity.

Now let’s see why most developers choose c++ for competitive programming.

Why C++ over Java and Python?

When you compete in contests, time limits come into play. Every second can give the highest or the lowest ranks, so time plays an important role in competitive programming. That’s why c++ is most preferred. It processes the large input fast and gives output very fast.

Because C++ has its Standard Template library. Which has built-in functions and methods that already have the instructions.

We can import the library at the top of our C++ and start working, so we don’t have to code everything from scratch. We can import the libraries and start coding.

For working with math equations, we import

#include <math.h> // OR #include <cmath>
Code language: C++ (cpp)

But we can also import one standard library that contains other libraries’ information.

#include <std/c++>
Code language: C++ (cpp)

C++ is an object-oriented programming language.

C++ manages its memory very well. It has a garbage collection algorithm that removes unused data when the program gets compiled for execution.

It has the pointer concept, where you can modify the reference objects.

Who can participate in Competitive programming?

Even if you are a beginner, you can participate in competitive programming using platforms like CodeChef. Leetcode, code studio, and hacker rank.

To participate in competitive programming, you should have some intermediate knowledge of c++ and DSA.

Below I have created a table to understand which concepts you should learn if you prepare for competitive programming.

Concept NameConcept CategoryDifficulty Level For Competitive Programming
1D, 2D & 3D ArraysC++ IntermediateMedium
Sorting Algorithm ( Insertion, Selection & Bubble Sort )DSAMedium
Working with StringsC++ Basic to IntermediateEasy
PointersC++ AdvancedMedium
VectorsDSAMedium
Bit ManipulationC++ IntermediateMedium
RecursionC++ AdvancedMedium – Hard
Time and Space ComplexityDSAMedium
Object Oriented ProgrammingC++ AdvancedMedium
ListsDSAHard
StacksDSAHard
QueuesDSAHard
GraphsDSAHard
Basic To Advanced Dynamic ProgrammingDSAHard
STL ContainersDSAMedium
Big IntegersDSAMedium
Greedy AlgorithmsDSAHard
SQRT DecompositionDSAHard
Shortest Path AlgorithmDSAMedium
Geometric AlgorithmDSAHard
Number TheoryDSAMedium
Lazy PropagationDSAMedium
Pigeonhole PrincipleDSAHard
concepts to learn for competitive programming

The best way to practice competitive programming would be to solve the problems on the topic you have learned.

Suppose you have learned arrays, go to platforms like CodeChef, and leetcode filter the problems based on the concepts, then you can try to solve them. 

It will help you build muscle memory and helps you retain what you have learned.

Resources to learn C++

I have curated a list of resources for learning C++.

Resource NameResource CategoryResource LinkAuthor
Learn C++ in 1 hourYouTube videoVideo LinkProgramming With Mosh
C++ Tutorial For BeginnersYouTube videoVideo LinkFreecodecamp
C++ in 31 HoursYouTube videoVideo LinkFreecodecamp
Basic of C++ and DSACourseCourse LinkCoding Ninjas
Learn C++ Programming, Beginners to AdvancedCourseCourse LinkAbdul Bari
CPP EssentialsCourseCourse LinkCoding Minutes
C++ Master CourseCourseCourse LinkCoding blocks
c++ learning resources

Resources to learn Competitive Programming:

I have curated a separate list of resources for learning Competitive Programming

Resource NameResource NameResource LinkAuthor
Learn Competitive ProgrammingCourseCourse LinkCoding Ninjas
Competitive Programming SeriesYouTube playlistPlaylist LinkLuv
Competitive Programming seriesYouTube playlistPlaylist LinkLove Babbar
Complete DSA CourseYouTube PlaylistPlaylist LinkLove Babbar
Competitive Programming beginners C++ challengesCourseCourse LinkLearn Coding Online
Competitive ProgrammingCourseCourse LinkCoding Blocks
DSA EssentialsCourse Course LinkCoding Minutes
Competitive Programming Essentials, Master AlgorithmsCourse Course LinkCoding Minutes
competitive programming learning resources

Platforms to practice competitive programming

Below I have created a table where you can practice competitive programming using c++

Platform namePlatform link
CodechefLink to CodeChef
LeetcodeLink to leetocde
CodeforcesLink to codeforces
Hackerrank Link to hackerank
Code StudioLink to code studio
Hacker earthLink to hacker earth
ExercismLink to exercism
the platform links to practice competitive programming

Summary

I hope you have the idea of why you should choose c++ for competitive programming. 

Make sure to master the fundamentals and try to solve the questions as many as possible, so you don’t forget the fundamentals. 

Thanks for reading ?!

Learn programming on codedamn

Codedamn is an interactive coding platform with tons of sweet programming courses that can help you land your first coding job. Here's how:

Programming is one of the most in-demand jobs today. Learning to program can change your future. All the best!

Sharing is caring

Did you like what Mujahid Khan H A wrote? Thank them for their work by sharing it on social media.