C++ Language Programming


1-Setting up C++Development Environment

2-Writing first C++ program

3-void main or main()

4-C++ Data Types(Practice)

5-Basic Input/Output

6-Response on exceeding valid range of data types

7-C++ Preprocessors

8-Operators in C++(Practice)

9-Loops (Practice)

10-Decision Making in C++(Practice)

11-Execute both if and else simultaneously

12-How to compile 32-bit program on 64-bit gcc in C and C++

13-Switch statement in C++(Practice)

14-Functions in C++(Practice)

15-Arrays in C/C++(Practice)

16-Strings in C++(Practice)

17-Pointers in C++(Practice)

18-References in C++

19-Introduction to OOP in C++

2- C vs C++

  1. C program that won’t compile in C++
  2. Undefined Behaviour in C and C++
  3. Name Mangling and extern “C” in C++
  4. void * in C vs C++
  5. Program that produces different results in C and C++
  6. Type difference of character literals in C vs C++
  7. Difference between Structures in C and C++

3- C++ vs Java

  1. Inheritance in C++ vs Java
  2. static keyword in C++ vs Java
  3. default virtual behavior in C++ vs Java
  4. Exception Handling in C++ vs Java
  5. Foreach in C++ vs Java
  6. Templates in C++ vs Generics in Java
  7. Foreach in C++ vs Java
  8. Floating Point Operations & Associativity in C, C++ and Java
  9. Similarities between Java and C++

4-Input and output

  1. I/O Redirection in C++
  2. Clearing The Input Buffer
  3. Basic Input/Output(Practice)
  4. cout << endl vs cout << “\n” in C++
  5. Problem with scanf() when there is fgets()/gets()/scanf() after it
  6. How to use getline() in C++ when there are blank lines in input?
  7. scanf() and fscanf() in C – Simple Yet Poweful
  8. Using return value of cin to take unknown number of inputs in C++
  9. How to change the output of printf() in main() ?
  10. Implementation of a Falling Matrix
  11. What does buffer flush means in C++ ?
  12. kbhit in C language
  13. Code to generate the map of India


  1. Operators in C++
  2. Unary operators in C/C++
  3. Conditionally assign a value without using conditional and arithmetic operators
  4. Execution of printf with ++ operators
  5. Set a variable without using
    Arithmetic, Relational or Conditional Operator
  6. Scope Resolution Operator vs this pointer
  7. Pre-increment (or pre-decrement)
  8. new and delete operator in C++
  9. CHAR_BIT in C
  10. Casting operators| Set 1 (const_cast)

6-Arrays and Strings

  1. Arrays in C/C++
  2. Array of Strings
  3. Multidimensional arrays in C/C++
  4. Raw string literal
  5. Counts of distinct consecutive sub-string of length two
  6. Converting string to number and vice-versa
  7. Find size of array in C/C++ without using sizeof
  8. How to quickly reverse a string in C++?
  9. Tokenizing a string in C++
  10. Getline() function and character array
  11. Convert string to char array in C++
  12. C++ string class and its applications , Set 2
  13. How to create a dynamic 2D array inside a class in C++ ?
  14. Lexicographically next permutation
  15. Print size of array parameter
  16. Split a string in C/C++, Python and Java
  17. Stringstream in C++ and its applications
  18. Strchr() function in C/C++
  19. Isspace() in C/C++ and its application to count whitespace characters
  20. Char* vs std:string vs char[] in C++
  21. Std::lexicographical_compare() in C++STL
  22. Std::string::at in C++
  23. Std::substr() in C/C++
  24. std::stol() and std::stoll() functions in C++
  25. Extract all integers from string in C++
  26. Strchr() function in C++ and its applications
  27. Strcat() vs strncat() in C++
  28. Strncat() function in C/C++
  29. Strpbrk() in C
  30. strcoll() in C/C++
  31. Why strcpy and strncpy are not safe to use?


  1. Functions in C++
  2. Default Arguments
  3. C function argument and return values
  4. Inline Functions
  5. Return from void functions
  6. Returning multiple values from a function using Tuple and Pair
  7. Function Call Puzzle
  8. Functors
  9. Ciel and floor functions in C++
  10. Const member functions
  11. atol(), atoll() and atof() functions in C/C++
  12. swap() in C++
  13. wmemmove() function in c++
  14. wcscat() function in C++
  15. wcscmp() function in C++ with Examples
  16. wcscpy() function in C++ with Examples
  17. wcslen() function in C++ with Examples
  18. difftime() function in C++
  19. asctime() function in C++
  20. localtime() function in C++
  21. scalbn() function in C++
  22. isunordered() function in C++
  23. isnormal() in C++
  24. isinf() function in C++
  25. quick_exit() function in C++ with Examples
  26. ctime() Function in C/C++
  27. clock() function in C/C++
  28. nearbyint() function in C++
  29. quick_exit() function in C++ with Examples
  30. wcscmp() function in C++ with Examples
  31. wcscpy() function in C++ with Examples
  32. wcslen() function in C++ with Examples

8-Pointers and References

  1. Pointers in C and C++
  2. What is Array Decay in C++? How can it be prevented?
  3. Opaque Pointer
  4. References
  5. Can references refer to invalid location?
  6. Pass arguments by reference or pointer
  7. Smart Pointers
  8. ‘this’ pointer
  9. Type of ‘this’ pointer
  10. “delete this”
  11. auto_ptr, unique_ptr, shared_ptr and weak_ptr
  12. Dangling, Void , Null and Wild Pointers
  13. Passing by pointer Vs Passing by Reference
  14. NaN in C++ – What is it and how to check for it?
  15. nullptr
  16. Pointers vs References in C++

9-Dynamic memory allocation

  1. new and delete operator in C++
  2. malloc() vs new
  3. delete() and free()
  4. Std::get_temporary_buffer in C++

10-Object Oriented Programming(OOP)

  1. Object oriented design
  2. Introduction to OOP in C++
  3. Classes and Objects
  4. Access Modifiers
  5. Inheritance
  6. Polymorphism
  7. Encapsulation
  8. Data Abstraction
  9. Structure vs class
  10. Can a C++ class have an object of self type?
  11. Why is the size of an empty class not zero?
  12. Static data members in C++
  13. Some interesting facts about static member functions
  14. Friend class and function
  15. Local Class
  16. Nested Classes
  17. Simulating final class

11-Constructor and Destructor

  1. Constructors
  2. Copy Constructor
  3. Destructors
  4. Does compiler create default constructor when we write our own?
  5. When should we write our
    own copy constructor?
  6. When is copy constructor called?
  7. Initialization of data members
  8. Use of explicit keyword
  9. When do we use Initializer List in?
  10. Default Constructors
  11. Private Destructor
  12. Playing with Destructors
  13. Copy elision
  14. C++ default constructor | Built-in types
  15. When does compiler create a default constructor and copy constructor?
  16. Why copy constructor argument should be const in C++?
  17. Advanced C++ | Virtual Constructor
  18. Advanced C++ | Virtual Copy Constructor
  19. Default Constructors
  20. When are static objects destroyed?
  21. Is it possible to call constructor and destructor explicitly?

12-Function Overloading

  1. Function Overloading
  2. Functions that can’t be overloaded
  3. Function overloading and const keyword
  4. Function overloading and return type
  5. Does overloading work with Inheritance?
  6. Can main() be overloaded
  7. Function Overloading and float

13-Operator Overloading

  1. Operator Overloading
  2. Copy constructor vs assignment operator
  3. When should we write our
    own assignment operator?
  4. Operators that cannot be overloaded
  5. Conversion Operators
  6. Is assignment operator inherited?
  7. Default Assignment Operator and References
  8. Overloading stream insertion (<<) and extraction (>>) operators
  9. Overloading array index operator []

14-Virtual Functions

  1. Virtual Functions and Runtime Polymorphism
  2. Default arguments and virtual function
  3. Virtual functions in derived classes
  4. Can static functions be virtual?
  5. Virtual Destructor
  6. Virtual Constructor
  7. Virtual Copy Constructor
  8. RTTI (Run-time type information)
  9. Can virtual functions be private?
  10. Inline virtual function
  11. Pure Virtual Functions and Abstract Classes
  12. Pure virtual destructor

15-Exception Handling

  1. Exception Handling Basics
  2. Stack Unwinding
  3. Catching base and derived classes as exceptions
  4. Catch block and type conversion
  5. Exception handling and object destruction


  1. Namespace in C++ | Set 1 (Introduction)
  2. Set 2 (Extending namespace and Unnamed namespace)
  3. Namespace in C++ | Set 3 (Accessing, creating header, nesting and aliasing)
  4. Inline namespaces and usage of the “using” directive inside namespaces
  5. Can namespaces be nested?

17-Standard Template Library (STL)Algorithms

  1. Introduction to STL
  2. Sorting
  3. Searching


  1. Pair (Practice)
  2. Vector (Practice)
    • Ways to copy a vector in C++
    • Sorting 2D Vector in C++ | Set 3 (By number of columns),(Sort in descending order by first and second)
    • Sorting 2D Vector in C++ | Set 2 (In descending order by row and column)
    • 2D vector in C++ with user defined size
    • Vector::clear() and vector::erase() in C++ STL
    • Passing vector to a function in C++
    • Vector::push_back() and vector::pop_back() in C++ STL
    • Vector::empty() and vector::size() in C++ STL
    • vector::front() and vector::back() in C++ STL
    • Initialize a vector; Different ways
    • Sorting 2D Vector in C++ | Set 1 (By row and column), (Sort by first and second)
    • Computing index using pointers returned by STL functions in C++
  3. List
    • List in C++ | Set 2 (Some Useful Functions)
    • Forward List in C++ | Set 1 (Introduction and Important Functions)
    • Forward List in C++ | Set 2 (Manipulating Functions)
    • list::remove() and list::remove_if() in C++ STL
    • Forward_list::front() and forward_list::empty() in C++ STL
      Forward_list :: remove() and forward_list :: remove_if() in C++ STL
    • forward_list::unique() in C++ STL
    • forward_list::reverse() in C++ STL
    • forward_list::max_size() in C++ STL
    • forward_list::before_begin() in C++ STL
    • forward_list::cbefore_begin() in C++ STL
    • forward_list::unique() in C++ STL
    • forward_list::before_begin() in C++ STL
    • forward_list::cbefore_begin() in C++ STL
    • forward_list::reverse() in C++ STL
    • forward_list::max_size() in C++ STL
    • forward_list::splice_after() in C++ STL
    • list::empty() and list::size() in C++ STL
    • list::front() and list::back() in C++ STL
    • list::pop_front() and list::pop_back() in C++ STL
    • list::push_front() and list::push_back() in C++ STL
    • list push_front() function in C++ STL
    • list pop_back() function in C++ STL
    • list pop_front() function in C++ STL
    • list reverse function in C++ STL
    • list resize() function in C++ STL
    • list size() function in C++ STL
    • list max_size() function in C++ STL
  4. Dequeue
  5. Deque::empty() and deque::size() in C++ STL
  6. Deque::pop_front() and deque::pop_back() in C++ STL
  7. Deque::clear() and deque::erase() in C++ STL
  8. Queue (Practice)
  9. Queue::front() and queue::back() in C++ STL
  10. Queue::push() and queue::pop() in C++ STL
  11. queue::empty() and queue::size() in C++ STL
  12. Priority Queue
  13. Stack (Practice)
  14. Stack::push() and stack::pop() in C++ STL
  15. Forward_list :: push_front() and forward_list :: pop_front() in C++ STL
  16. Stack::top() in C++ STL
  17. Stack::empty() and stack::size() in C++ STL
  18. Set (Practice)
    • Count number of unique Triangles using STL | Set 1 (Using set)
    • std::istream_iterator and std::ostream_iterator in C++ STL
  19. Std::next_permutation and prev_permutation in C++
  20. Std::stoul and std::stoull in C++
  21. Shuffle vs random_shuffle in C++
  22. Difference between set, multiset, unordered_set, unordered_multiset
  23. Check if a key is present in a C++ map or unordered_map
  24. Std::stable_partition in C++
  25. Valarray slice selector
  26. Std::memchr in C++
  27. Std::strncmp() in C++
  28. Stable_sort() in C++ STL
  29. Std::memcmp() in C++
  30. Std::memset in C++
  31. Std::bucket_count and std::bucket_size in unordered_map in C++
  32. Map of pairs in STL
  33. Range-based for loop in C++
  34. Std::includes() in C++ STL
  35. Std::set_symmetric_difference in C++
  36. Std::sort_heap in C++
  37. Map vs unordered_map in C++
  38. Round() in C++
  39. Modulus of two float or double numbers
  40. Multiset
  41. Map (Practice)
  42. Heap using STL C++


  • Multimap in C++ Standard Template Library (STL)
  • multimap::find() in C++ STL
  • multimap::erase() in C++ STL
  • map emplace() in C++ STL
  • multimap::emplace_hint() in C++ STL
  • multimap::emplace() in C++ STL
  • multimap::count() in C++ STL
  • multimap::find() in C++ STL
  • multimap::erase() in C++ STL
  • multimap::begin() and multimap::end() in C++ STL
  • multimap::cbegin() and multimap::cend() in C++ STL
  • map cbegin() and cend() function in C++ STL
  • multimap::crbegin() and multimap::crend() in C++ STL
  • multimap size() function in C++ STL
  • multimap lower_bound() function in C++ STL
  • multimap swap() function in C++ STL
  • multimap upper_bound() function in C++ STL
  • multimap maxsize() in C++ STL
  • multimap insert() in C++ STL
  • multimap equal_range() in C++ STL


  • sinh() function in C++ STL
  • cosh() function in C++ STL
  • tanh() function in C++ STL
  • acos() function in C++ STL
  • asinh() function in C++ STL
  • acosh() function in C++ STL
  • atanh() function in C++ STL


  1. sort() in C++ STL
  2. Strand sort
  3. Type Inference in C++ (auto and decltype)
  4. transform() in C++ STL
  5. Variadic function templates in C++
  6. Template Specialization
  7. Implementing iterator pattern of a singly linked list
  8. Binary Search functions in C++ STL
  9. Descending order in Map and Multimap of C++ STL
  10. Insertion and Deletion in STL Set C++


  • What all is inherited from parent class in C++?
  • Virtual Functions and Runtime Polymorphism in C++
  • Multiple Inheritance in C++
  • What happens when more restrictive access is given to a derived class method in C++?
  • Object Slicing in C++
  • Hiding of all overloaded methods in base class
  • Inheritance and friendship
  • Simulating final class

C++ Library

  1. <random> file – generators and distributions
  2. Array type manipulation
  3. C++ programming and STL facts
  4. Sqrt, sqrtl and sqrtf in C++
  5. std::stod, std::stof, std::stold in C++
  6. C program to demonstrate fork() and pipe()
  7. Complex numbers in C++ | Set 1 Set 2
  8. Inbuilt library functions for user Input
  9. Rename function in C/C++
  10. Chrono
  11. valarray class
  12. Floating Point Manipulation (fmod(), remainder(), remquo() … in cmath)(Practice)
  13. Character Classification: cctype
  14. Snprintf() in C library
  15. Boost::split in C++ library
  16. Modulus of two float or double numbers
  17. Is_trivial function in C++
  18. Array sum in C++ STL
  19. Div() function in C++
  20. Exit() vs _Exit() in C and C++
  21. Std::none_of in C++
  22. Isprint() in C++
  23. Iscntrl() in C++ and its application to find control characters
  24. Std::partition_point in C++
  25. Iterator Invalidation in C++
  26. Fesetround() and fegetround() in C++ and their application
  27. Rint(), rintf(), rintl() in C++
  28. Hypot(), hypotf(), hypotl() in C++
  29. Std::gslice | Valarray generalized slice selector
  30. std::setbase, std::setw , std::setfill in C++
  31. Strxfrm() in C/C++
  32. Set position with seekg() in C++ language file handling
  33. Strstr() in C/C++
  34. Difftime() C library function
  35. Socket Programming
  36. Precision of floating point numbers in C++ (floor(), ceil(), trunc(), round() and setprecision())
  37. <bit/stdc++.h> header file
  38. std::string class in C++
  39. Merge operations using STL in C++ (merge, includes, set_union, set_intersection, set_difference, ..)
  40. std::partition in C++ STL
  41. Ratio Manipulations in C++ | Set 1 (Arithmetic) , Set 2 (Comparison)
  42. numeric header in C++ STL | Set 1 (accumulate() and partial_sum()), Set 2 (adjacent_difference(), inner_product() and iota())
  43. Bind function and placeholders
  44. Array class
  45. Tuples
  46. Regex (Regular Expression)
  47. Common Subtleties in Vector STLs
  48. Understanding constexpr specifier
  49. unordered_multiset and its uses
  50. unordered_multimap and its application
  51. Populating a vector in C++ using fill() and fill_n()
  52. Writing OS Independent Code in C/C++
  53. C Program to display hostname and IP address
  54. Database Connectivity using C/C++
  55. C++ bitset and its application
  56. unordered_map in STL and its applications
  57. unorderd_set in STL and its applications
  58. nextafter() and nexttoward()

C++ Advanced

  1. User Defined Literal
  2. Placement new operator
  3. Advanced C++ with boost library
  4. Copy-and-Swap Idiom
  5. Zombie and Orphan Processes
  6. Lambda expression
  7. C++ | Signal Handling
  8. Preventing Object Copy in C++
  9. Command line arguments in C++

C++ in Competitive Programming

  1. Writing C/C++ code efficiently in Competitive programming
  2. Useful Array algorithms in C++ STL
  3. searching in fork()
  4. Data Type Ranges and their macros
  5. Cin-Cout vs Scanf-Printf
  6. getchar_unlocked() – faster input in C/C++ for Competitive Programming
  7. C qsort() vs C++ sort()
  8. Middle of three using minimum comparisons
  9. Check for integer overflow on multiplication
  10. Generating Test Cases (generate() and generate_n()


  1. Can we call an undeclared function in?
  2. Can we access global variable if there is a local variable with same name?
  3. Can we use function on left side of an expression in C and C++?
  4. Can we access private data membersof a class without using a member or a friend function?
  5. How to make a C++ class whose objects
    can only be dynamically allocated?
  6. How to print “wpbeginnerblog” with empty main()
  7. Print 1 to 100, without loop and recursion
  8. C/C++ Tricky Programs
  9. Print a number 100 times without using loop, recursion and macro expansion in C++
  10. How to restrict dynamic allocation of objects
  11. Sum of digits of a number in single statement
  12. Write a URL in a C++ program
  13. Zoom digits of an integer
  14. Composite Design Pattern in C++
  15. Assign value without any control statement
  16. Printing pyramid pattern
  17. How to swap two variables in one line in C/C++, Python and Java?
  18. Program to shut down a computer

You May Also Like

Abdul Vakeel

About the Author: Abdul Vakeel

WPBeginner Blog is a Free WordPress Resource Site For Beginners. WPBeginner Blog Was Founded in 4th June 2018 by Abdul Vakeel.The Main Goal of This Site is to Provide Quality Tips, Tricks, Hacks, and Other WordPress Resources That Allows WordPress Beginners to Improve Their Site.

Leave a Reply

Your email address will not be published. Required fields are marked *