Category: C++
Reverse a Singly Linked List in a Single Iteration
Suppose we have a linked list and we want to reverse it in Single iteration and O(n) complexity. Original Linked List, Linked List Reversed Linked List, Advertisements Reversed Linked List Our Node structure is, struct node { int value; node * nextPtr; node(int val) { value = val; …
Using std::find & std::find_if with User Defined Classes
std::find and std::find_if algorithms are used to find first element in the given range. In this article we will see how to use std::find and std::find_if algorithm with user defined datatypes i.e. Classes & Structures. Advertisements Internally std::find algorithm uses the == operator for comparisons. For built-in data types like int, std::string etc operator == …
Using std::find & std::find_if with User Defined ClassesRead More
Be careful with hidden cost of std::vector for user defined objects
While creating and using std::vector with user defined classes we needs some special care otherwise it can hamper the performance of our application. [showads ad=inside_post] Let’s learn by example, Suppose we have an Item Class, Advertisements class Item { public: static int m_ConstructorCalledCount; static int m_DestCalledCount; static int m_CopyConstructorCalledCount; Item() { m_ConstructorCalledCount++; } ~Item() { …
Be careful with hidden cost of std::vector for user defined objectsRead More
C++ : Map Tutorial Part 1: Usage Detail with examples
In this article we see how & why to use std::map in c++. std::map Introduction std::map is an associative container that store elements in key-value pair. Advertisements Benefits of using std::map : It stores only unique keys and that too in sorted order based on its assigned sorting criteria. As keys are in sorted order …
C++ : Map Tutorial Part 1: Usage Detail with examplesRead More
C++ : How to split a string using String and character as Delimiter?
In this article we will see 2 techniques to split a std::string in C++ and return the result in std::vector<std::string> i.e. Splitting a std::string using a char as delimiter. Splitting a std::string using an another std::string as delimiter. How to Split a std::string using a char as delimiter: In this we will convert the passed …
C++ : How to split a string using String and character as Delimiter?Read More
Object Oriented Approach to Display a sequence of numbers without any For-Loop or Recursion
Suppose we have to display a sequence of numbers like from 10 to 20 i.e. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 Advertisements without using any for-loop and recursion. Solution: Frequently Asked: Object Oriented Approach to Display a sequence of numbers without any For-Loop or Recursion We will use two concepts …
Object Oriented Approach to Display a sequence of numbers without any For-Loop or RecursionRead More
When to use virtual functions in C++?
When we want a Derived Class to override a member function of Base class, then we should make that member function in Base class virtual. So that if someone uses the Derived class object using Base class’s pointer or reference to call the overridden member function, then function of derived class should be called. Suppose draw() is …
C++ : Map Tutorial Part 3: Using User defined class objects as keys in std::map
In this article we will discuss how to use User defined classes as key in std::map. By default std::map uses “operator <” as sorting criteria for keys. For default data types like int and std::string etc, operator < is available by default but for User defined classes operator < is not available by default. Advertisements …
C++ : Map Tutorial Part 3: Using User defined class objects as keys in std::mapRead More
C++ : Map Tutorial -Part 2: Map and External Sorting Criteria / Comparator
In this article we will discuss how to use external sorting criteria for keys in std::map and points that we need to take care with external sorting criteria. Default sorting criteria for keys in std::map is operator “<” i.e. std::less<T>. So, while creating std::map if we don’t specify the external sorting criteria then default criteria …
C++ : Map Tutorial -Part 2: Map and External Sorting Criteria / ComparatorRead More
C++11 Multithreading – Part 4: Data Sharing and Race Conditions
In multithreading environment data sharing between threads is very easy. But this easy sharing of data can cause problems in application. One such problem is Race Condition. What is a Race Condition? Race condition is a kind of a bug that occurs in multithreaded applications. Advertisements When two or more threads perform a set of …
C++11 Multithreading – Part 4: Data Sharing and Race ConditionsRead More