Last active
April 24, 2020 06:21
-
-
Save TravisMullen/59d43fb64dcbc5d600e14b308bf419db to your computer and use it in GitHub Desktop.
C++ Cheat Sheet by Example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ---------- C++ Tutorial Example 1 ---------- | |
// Source {@link http://www.newthinktank.com/2018/03/c-tutorial-26/} | |
/* | |
* Multi-line Comment | |
*/ | |
// These are called preprocessor directives | |
// They load the files which contain premade functions | |
// for your use | |
// Contains functions for converting from 1 data type to | |
// another, random number generation, memory management, | |
// searching, math, sorting and other general purpose functions | |
#include <cstdlib> | |
// Provides functions for performing input and output operations | |
#include <iostream> | |
// If used you can type cout instead of std::cout | |
// By using this though you may have conflicts if you define | |
// functions that share a name with the std namespace | |
// using namespace std; | |
// You could define you only want to use part of a namespace like | |
// using std::cout; | |
// Which would allow you to use cout instead of std::cout | |
// Execution of code starts in the main function | |
// argc and argv is optional data that could be passed | |
// to the program if it was executed in a terminal | |
// argc : Number of arguments passed | |
// argv : Array pointers to strings | |
int main(int argc, char* argv[]) { | |
// Outputs the string Hello World to the screen followed by a newline | |
// cout is your console or screen | |
// << : Stream insertion operator which puts the string | |
// into the cout stream to display it | |
std::cout << "Hello World" << std::endl; | |
// If you compile the code into an executable program in the terminal | |
// g++ main.cpp | |
// And execute it : ./a.out I Love C++ | |
// You'd see how to work with passed arguments | |
// If no arguments are passed argc has a value of 1 | |
// We check that with if to skip printing values if none were passed | |
if(argc != 1){ | |
// You can also create a newline with \n | |
std::cout << "You entered " << argc << " arguments\n"; | |
// Cycles through all the values in the argc array and prints them | |
// We access the values by using their index number starting at | |
// 0 | |
for(int i = 0; i < argc; ++i){ | |
// We access each string passed by putting its index between [] | |
// called the subscript operator | |
std::cout << argv[i] << "\n"; | |
} | |
} | |
// When 0 is returned that signals that the program executed without | |
// an error and -1 signals an error occurred | |
return 0; | |
} | |
// ---------- End of C++ Tutorial Example 1 ---------- | |
// ---------- C++ Tutorial Example 2 ---------- | |
#include <cstdlib> | |
#include <iostream> | |
// Allows you to use the STL string class | |
#include <string> | |
// Provides functions to find min and max values | |
// for data types | |
#include <limits> | |
// When we create a variable we are telling the computer | |
// how much memory to set aside for its value and what | |
// name we want to associate with that data | |
// Variable names can contain letters, numbers, underscores | |
// but not math operators, spaces and can't start with a number | |
// Global variables are declared outside of any functions | |
// and can be accessed any where in the code | |
// This is a global integer variable with a name using | |
// Hungarian notation | |
int g_iRandNum = 0; | |
// const defines constant values that won't change | |
const double PI = 3.1415926535897932; | |
int main() { | |
// Get min and max values for different data types | |
// bools store true 1, or false 0 | |
bool bMarried = true; | |
// char stores 256 single characters represented by your keyboard | |
char chMyGrade = 'A'; | |
// unsigned short ints hold values from 0 to 65,535 | |
// unsigned int & unsigned long int double their max value | |
unsigned short int u16Age = 43; | |
// short ints store between -32,768 to 32,767 | |
short int siWeight = 180; | |
// ints range from -2147483648 to 2147483647 | |
int nDays = 7; | |
// long ints and long long ints range from -9223372036854775808 to | |
// 9223372036854775807 | |
long lBigNum = 1000000; | |
// floats range from 1.17549e-38 to 3.40282e+38 | |
float fPi = 3.14159; | |
// Show float precision | |
float fBigFloat = 1.1111111111; | |
float fBigFloat2 = 1.1111111111; | |
float fFloatSum = fBigFloat + fBigFloat2; | |
// Allows you to print with formatting | |
// Float addition has 6 digits of precision | |
printf("fFloatSum Precision : %.10f\n", fFloatSum); | |
// doubles range from 2.22507e-308 to 1.79769e+308 | |
std::cout << "Min double " << | |
std::numeric_limits<double>::min() << "\n"; | |
std::cout << "Max double " << | |
std::numeric_limits<double>::max() << "\n"; | |
// Show double precision | |
double dbBigFloat = 1.11111111111111111111; | |
double dbBigFloat2 = 1.11111111111111111111; | |
double dbFloatSum = dbBigFloat + dbBigFloat2; | |
// Allows you to print with formatting | |
// Double addition has 10 digits of precision (corrected from 15 as noted by source) | |
printf("dbFloatSum Precision : %.20f\n", dbFloatSum); | |
// long doubles range from 3.3621e-4932 to 1.18973e+4932 | |
long double ldPi = 3.1415926535897932; | |
// You can have the compiler assign a type | |
auto whatWillIBe = true; | |
// SHOW DATA TYPES MIN & MAX VALUES | |
std::cout << "Min bool " << std::numeric_limits<bool>::min() << "\n"; | |
std::cout << "Max bool " << std::numeric_limits<bool>::max() << "\n"; | |
std::cout << "Min unsigned short int " << | |
std::numeric_limits<unsigned short int>::min() << "\n"; | |
std::cout << "Max unsigned short int " << | |
std::numeric_limits<unsigned short int | |
>::max() << "\n"; | |
std::cout << "Min short int " << | |
std::numeric_limits<short int>::min() << "\n"; | |
std::cout << "Max short int " << | |
std::numeric_limits<short int | |
>::max() << "\n"; | |
std::cout << "Min int " << std::numeric_limits<int>::min() << "\n"; | |
std::cout << "Max int " << std::numeric_limits<int>::max() << "\n"; | |
std::cout << "Min long " << std::numeric_limits<long int>::min() << "\n"; | |
std::cout << "Max long " << std::numeric_limits<long int>::max() << "\n"; | |
std::cout << "Min float " << | |
std::numeric_limits<float>::min() << "\n"; | |
std::cout << "Max float " << | |
std::numeric_limits<float>::max() << "\n"; | |
std::cout << "Min long double " << | |
std::numeric_limits<long double>::min() << "\n"; | |
std::cout << "Max long double " << | |
std::numeric_limits<long double>::max() << "\n"; | |
// Get the number of bytes used by a type | |
std::cout << "int Size " << sizeof(int) << "\n"; | |
// More about printf() | |
// char, int, 5 space right justified int, | |
// 3 decimal float / double, string specifiers | |
printf("%c %d %5d %.3f %s\n", 'A', 10, 5, 3.1234, "Hi"); | |
return 0; | |
} | |
// ---------- End of C++ Tutorial Example 2 ---------- | |
// ---------- C++ Tutorial Example 3 ---------- | |
#include <cstdlib> | |
#include <iostream> | |
#include <string> | |
int main() { | |
// Create a string | |
std::string sQuestion ("Enter Number 1 : "); | |
// Create empty strings to store values | |
std::string sNum1, sNum2; | |
std::cout << sQuestion; | |
// Receive user input and store it | |
getline(std::cin, sNum1); | |
std::cout << "Enter Number 2 : "; | |
getline(std::cin, sNum2); | |
// Convert from strings to int | |
// std::stod converts from strings to doubles | |
int nNum1 = std::stoi(sNum1); | |
int nNum2 = std::stoi(sNum2); | |
// Math Operators | |
printf("%d + %d = %d\n", nNum1, nNum2, (nNum1 + nNum2)); | |
printf("%d - %d = %d\n", nNum1, nNum2, (nNum1 - nNum2)); | |
printf("%d * %d = %d\n", nNum1, nNum2, (nNum1 * nNum2)); | |
printf("%d / %d = %d\n", nNum1, nNum2, (nNum1 / nNum2)); | |
printf("%d %% %d = %d\n", nNum1, nNum2, (nNum1 % nNum2)); | |
// ----- PROBLEM : MILES TO KILOMETERS ----- | |
// Sample knowing that kilometers = miles * 1.60934 | |
// Enter Miles : 5 | |
// 5 miles equals 8.0467 kilometers | |
// Create needed variables | |
std::string sMiles; | |
double dMiles, dKilometers; | |
// Ask user to input miles and store string input | |
std::cout << "Enter Miles : "; | |
getline(std::cin, sMiles); | |
// Convert from string to double | |
dMiles = std::stod(sMiles); | |
// Convert from miles to km | |
dKilometers = dMiles * 1.60934; | |
// Output the results | |
printf("%.1f miles equals %.4f kilometers\n", dMiles, dKilometers); | |
// ----- END PROBLEM : MILES TO KILOMETERS ----- | |
return 0; | |
} | |
// ---------- End of C++ Tutorial Example 3 ————— |
Type Typical Bit Width Typical Range
char 1byte -127 to 127 or 0 to 255
unsigned char 1byte 0 to 255
signed char 1byte -127 to 127
int 4bytes -2147483648 to 2147483647
unsigned int 4bytes 0 to 4294967295
signed int 4bytes -2147483648 to 2147483647
short int 2bytes -32768 to 32767
unsigned short int Range 0 to 65,535
signed short int Range -32768 to 32767
long int 4bytes -2,147,483,648 to 2,147,483,647
signed long int 4bytes same as long int
unsigned long int 4bytes 0 to 4,294,967,295
float 4bytes +/- 3.4e +/- 38 (~7 digits)
double 8bytes +/- 1.7e +/- 308 (~15 digits)
long double 8bytes +/- 1.7e +/- 308 (~15 digits)
wchar_t 2 or 4 bytes 1 wide character
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Says 10 prec for double in video