C++ Tutorial Index

C++ Tutorial C++ History C++ Installation C++ First Program C++ cin and cout C++ Data type C++ Variable C++ operator C++ Keywords

C++ Control Statements

C++ If C++ Nested if C++ If-else C++ If-else-if C++ Switch C++ Break C++ Continue C++ Goto C++ For loop C++ While loop C++ Do while loop

C++ Functions

C++ Call by Value C++ Call by Reference C++ Recursion Function C++ Inline function C++ Friend function

C++ Arrays

Single dimension array Two dimension array

C++ Strings

C++ Strings

C++ Inheritance

C++ Inheritance Single level Inheritance Multilevel Inheritance Multiple Inheritance Hierarchical Inheritance Hybrid Inheritance

C++ Polymorphism

C++ Polymorphism C++ Overloading C++ Overriding C++ Virtual Function

C++ Pointers

C++ Pointers C++ this pointer

C++ Exception Handling

C++ Exception Handling

C++ Constructors

C++ Constructors Default Constructor Parameterize Constructor Copy constructor Constructor Overloading Destructor

C++ File Handling

C++ File Handling C++ Writing to file C++ Reading file C++ Close file

Miscellaneous

C Vs C++ C++ Comments C++ Data Abstraction C++ Identifier C++ Memory Management C++ Storage Classes C++ Void Pointer C++ Array To Function C++ Expressions C++ Features C++ Interfaces C++ Encapsulation std::min in C++ External merge sort in C++ Remove duplicates from sorted array in C++ Precision of floating point numbers Using these functions floor(), ceil(), trunc(), round() and setprecision() in C++ C++ References C++ Friend Functions C++ Mutable keyword Unary Operators in C++ Initialize Array of objects with parameterized constructors in C++ Differences between #define & const in C/C++ C++ Program to Implement Shell Sort C++ Program to Implement Merge Sort Storage Classes in C Vector resize() in C++ Passing by Reference Vs. Passing by the pointer in C++ Free vs delete() in C++ goto statement in C and C++ C++ program to read string using cin.getline() C++ String Concatenation Heap Sort in C++ Swap numbers in C++ Input Iterators in C++ Fibonacci Series in C++ C ++ Program: Alphabet Triangle and Number Triangle C++ Program: Matrix Multiplication C++ Program to Print Fibonacci Triangle Stack in C++ Maps in C++ Queue in C++ C++ Bitset C++ Algorithms Priority Queue in C++ C++ Multimap C++ Deque Function Pointer in C++ Sizeof() Operators in C++ C++ array of Pointers free() Vs delete in C Timsort Implementation Using C++ CPP Templates C++ Aggregation C++ Enumeration C++ Math Functions C++ Object Class C++ Queue Initialize Vector in C++ Vector in C++ C++ STL Components Function overloading in C++ C++ Maximum Index Problem C++ find missing in the second array C++ Program to find the product array puzzle C++ Program To Find Largest Subarray With 0 Sum C++ Program To Move All Zeros To The End Of The Array C++ Program to find the element that occurs once C++ Program to find the largest number formed from an array Constructor Vs Destructor C++ Namespaces C++ OOPs Concept C++ Static C++ Structs C++ Try-Catch C++ User Defined Exceptions C++ Virtual Destructor C++ vs C# Malloc() and new in C++ Palindrome Number Program in C++ Snake Code in C++ Splitting a string in C++ Structure Vs Class in C++ Virtual Function Vs Pure Virtual Function C++ Bidirectional Iterators C++ Forward Iterators C++ Iterators C++ Output Iterators C++ Range-based For Loop Converting string into integer in C++ LCM Program in C++ Type conversion in C++ Add two numbers using the function in C++ Advantage and disadvantage friend function C++ Armstrong Number Program in C++ ATM machine program in C++ using functions Binary to Decimal in C++ Bit Manipulation in C++ C++ Constructor C++ Dijkstra Algorithm Using the Priority Queue C++ int into String C++ Signal Handling Decimal to Binary in C++ Decimal to Hexadecimal in C++ Decimal to Octal in C++ Factorial Program in C++ Function in C++ Hexadecimal to Decimal in C++ Octal to Decimal in C++ Reverse a Number in C++ Structure Vs Class in C++ C++ Forward Iterators C++ Output Iterators C++ Prime number program Char Array to String in C++ Constructor Overloading in C++ Default arguments in C++ Different Ways to Compare Strings in C++ Dynamic Binding in C++ Program to convert infix to postfix expression in C++ SET Data Structure in C++ Upcasting and Downcasting in C++ Reverse an Array in C++ Fast Input and Output in C++ Delete Operator in C++ Copy elision in C++ C++ Date and Time C++ Bitwise XOR Operator Array of sets in C++ Binary Operator Overloading in C++ Binary Search in C++ Implementing the sets without C++ STL containers Scope Resolution Operator in C++ Smart pointers in C++ Types of polymorphism in C++ Exception Handling in C++ vs Java Const Keyword in C++ Type Casting in C++ Static keyword in C++ vs Java Inheritance in C++ vs Java How to concatenate two strings in C++ Programs to Print Pyramid Patterns in C++ swap() function in C++ Structure of C++ Program Stringstream in C++ and its applications rand() and srand() in C / C++ C++ Ternary Operator C++ Scope of Variables While Loop Examples in C++ Star pattern in C++ using For Loops For Loop Examples in C++ Do-While Loop Examples in C++ Top 5 IDEs for C++ That You Should Try Once Assertions in C/C++ C++ Convert Int to String Continue in C++ While loop Diamond Pattern in C++ using For Loop How to Reverse a String in C++ using Do-While Loop How to Reverse a String in C++ using For Loop How to Reverse a String in C++ using While Loop Infinite loop in C++ Loops in C++ Returning Multiple Values from a Function using Tuple and Pair in C++ wcscpy(), wcslen(), wcscmp() Functions in C++

Fast Input and Output in C++

In competitive programming, it's critical to read input as quickly as possible in order to save time. "Warning: Big I / O data, be aware of certain languages (but most should be correct if the operating system is sufficiently developed)," you have probably read in many of the problem statements. Faster I / O systems are key to solving such problems.

For faster and more intuitive input, scanf / printf is often recommended over cin / cout. However, by setting the following two lines in your main (), you can still use cin / cout and get the same functionality as scanf / printf:

ios_base :: sync_with_stdio ( false ) ;

When called before the system performs its first input or output action, it turns on or off the synchronization of all normal C ++ streams and your normal C-stream. This sync can be avoided by adding ios base :: sync with stdio ( false ); (which is automatically true) before every I / O action. Stable member std :: ios base function.

cin.tie ( NULL ) ;

tie () is a function that merely ensures that std :: cout is flushed before std :: cin accepts a command. This is handy for interactive console applications that require the console to be updated on a regular basis, but it slows down the program when dealing with big amounts of data. The NULL portion just returns a reference to NULL.

Furthermore, the standard template library (STL) may be included with a single include:

#include < bits/stdc++.h >

As an example, your competitive programming template may look like this:

#include < bits/stdc++.h >
using namespace std ; 
int main ( )
{
    ios_base :: sync_with_stdio ( false ) ;
    cin.tie ( NULL ) ;
    return 0 ;
}

It is preferable to use cout "n"; rather than cout endl;. endl is more time consuming since it requires a flushing stream, which is frequently unneeded. (If you are upgrading, for example, a collaborative progress bar, you will need to delete it, but not if you are writing a million data lines.) Instead of 'house, write' n. Problem INTEST - Enormous Input Teston SPOJ, we may test our inputs and output methods. I recommend that you tackle the problem first before continuing.

Example:

// A normal IO example code
#include < bits/stdc++.h >
using namespace std ;
int main ( )
{
	int n , k , t ;
	int cnt = 0 ;
	cin >> n >> k ;
	for ( int i=0 ; i < n ; i++ )
	{
		cin >> t ;
		if ( t % k == 0 )
			cnt++ ;
	}
	cout << cnt << "\n" ;
	return 0 ;
}

OUTPUT:

0
...
Process executed in 2.11 seconds
Press any key to continue.

Explanation

cin and cout are used in the code below. With a runtime of 2.11 seconds, the solution is acceptable.

Another Example:

// A fast IO program
#include < bits/stdc++.h >
using namespace std ; 
int main ( )
{
	// added the two lines below
	ios_base :: sync_with_stdio ( false ) ;
	cin.tie ( NULL ) ; 
	int n , k , t ;
	int cnt = 0 ;
	cin >> n >> k ;
	for ( int i = 0 ; i < n ; i++ )
	{
		cin >> t ;
		if ( t % k == 0 )
			cnt++ ;
	}
	cout << cnt << "\n" ;
	return 0 ;
}

OUTPUT:

0
...
Process executed in 0.22 seconds
Press any key to continue.

Explanation

By adding two lines, we can improve the performance and significantly cut the runtime. With a runtime of 0.22 seconds.

Another Example:

#include < bits/stdc++.h >
using namespace std;
void fastscan ( int &number )
{
	//variable to indicate sign of input number
	bool negative = false ;
	register int c ; 
	number = 0 ; 
	// extract current character from buffer
	c = getchar ( ) ;
	if ( c == '-' )
	{
		// number is negative
		negative = true ; 
		// extract the next character from the buffer
		c = getchar ( ) ;
	}
	// Keep on extracting characters if they are integers
	// i.e ASCII Value lies from '0'( 48 ) to '9' ( 57 )
	for ( ; ( c > 47 && c < 58 ) ; c=getchar ( ) )
		number = number *10 + c - 48 ; 
	// if scanned input has a negative sign, negate the
	// value of the input number
	if ( negative )
		number *= -1 ;
}
// Function Call
int main ( )
{
	int number ;
	fastscan ( number ) ;
	cout << number << "\n" ;
	return 0 ;
}

OUTPUT:

0
...
Process executed in 0.12 seconds
Press any key to continue.

Explanation:

Now, when it comes to competitive challenges such as the ACM ICPC, Google CodeJam, and TopCoder Open, above is a unique code for reading numbers quickly.



ADVERTISEMENT
ADVERTISEMENT