SlideShare a Scribd company logo
const int c=3;           // Constants must be initialized, cannot assign
               C++ QUICK REFERENCE                                          to
                                                                            const int* p=a;          //   Contents of p (elements of a) are constant
                                                                            int* const p=a;          //   p (but not contents) are constant
PREPROCESSOR                                                                const int* const p=a;    //   Both p and its contents are constant
                                                                            const int& cr=x;         //   cr cannot be assigned to change x
                           //   Comment to end of line
                           /*   Multi-line comment */                       STORAGE CLASSES
#include <stdio.h>         //   Insert standard header file
#include "myfile.h"        //   Insert file in current directory
#define X some text        //   Replace X with some text                    int x;                   // Auto (memory exists only while in scope)
#define F(a,b) a+b         //   Replace F(1,2) with 1+2                     static int x;            // Global lifetime even if local scope
#define X                                                                  extern int x;            // Information only, declared elsewhere
  some text                //   Line continuation
#undef X                   //   Remove definition                           STATEMENTS
#if defined(X)             //   Condional compilation (#ifdef X)
#else                      //   Optional (#ifndef X or #if !defined(X))
#endif                     //   Required after #if, #ifdef                  x=y;                     // Every expression is a statement
                                                                            int x;                   // Declarations are statements
                                                                            ;                        // Empty statement
LITERALS
                                                                            {                        // A block is a single statement
                                                                              int x;                 // Scope of x is from declaration to end of
255, 0377, 0xff            //   Integers (decimal, octal, hex)              block
2147483647L, 0x7fffffffl   //   Long (32-bit) integers                        a;                     // In C, declarations must precede statements
123.0, 1.23e2              //   double (real) numbers                       }
'a', '141', 'x61'        //   Character (literal, octal, hex)             if (x) a;                // If x is true (not 0), evaluate a
'n', '', ''', '"'     //   Newline, backslash, single quote, double    else if (y) b;           // If not x and y (optional, may be repeated)
quote                                                                       else c;                  // If not x and not y (optional)
"stringn"                 // Array of characters ending with newline and
0                                                                          while (x) a;             // Repeat 0 or more times while x is true
"hello" "world"            // Concatenated strings
true, false                // bool constants 1 and 0                        for (x; y; z) a;         // Equivalent to: x; while(y) {a; z;}

                                                                            do a; while (x);         // Equivalent to: a; while(x) a;
DECLARATIONS
                                                                            switch (x) {             //   x must be int
                                                                              case X1: a;            //   If x == X1 (must be a const), jump here
int x;                    // Declare x to be an integer (value undefined)     case X2: b;            //   Else if x == X2, jump here
int x=255;                // Declare and initialize x to 255                  default: c;            //   Else jump here (optional)
short s; long l;          // Usually 16 or 32 bit integer (int may be       }
either)                                                                     break;                   // Jump out of while, do, or for loop, or switch
char c='a';               // Usually 8 bit character                        continue;                // Jump to bottom of while, do, or for loop
unsigned char u=255; signed char s=-1; // char might be either              return x;                // Return x from function to caller
unsigned long x=0xffffffffL;            // short, int, long are signed      try { a; }
float f; double d;        // Single or double precision real (never         catch (T t) { b; }       // If a throws a T, then jump here
unsigned)                                                                   catch (...) { c; }       // If a throws something else, jump here
bool b=true;              // true or false, may also use int (1 or 0)
int a, b, c;              // Multiple declarations
int a[10];                // Array of 10 ints (a[0] through a[9])           FUNCTIONS
int a[]={0,1,2};          // Initialized array (or a[3]={0,1,2}; )
int a[2][3]={{1,2,3},{4,5,6}}; // Array of array of ints
char s[]="hello";         // String (6 elements including '0')             int f(int x, int);       // f is a function taking 2 ints and returning
int* p;                   // p is a pointer to (address of) int             int
char* s="hello";          // s points to unnamed array containing "hello"   void f();                //   f is a procedure taking no arguments
void* p=NULL;             // Address of untyped memory (NULL is 0)          void f(int a=0);         //   f() is equivalent to f(0)
int& r=x;                 // r is a reference to (alias of) int x           f();                     //   Default return type is int
enum weekend {SAT,SUN};   // weekend is a type with values SAT and SUN      inline f();              //   Optimize for speed
enum weekend day;         // day is a variable of type weekend              f() { statements; }      //   Function definition (must be global)
enum weekend {SAT=0,SUN=1}; // Explicit representation as int               T operator+(T x, T y);   //   a+b (if type T) calls operator+(a, b)
enum {SAT,SUN} day;       // Anonymous enum                                 T operator-(T x);        //   -a calls function operator-(a)
typedef String char*;     // String s; means char* s;                       T operator++(int);       //   postfix ++ or -- (parameter ignored)
                                                                            extern "C" {void f();}   //   f() was compiled in C
Function parameters and return values may be of any type. A function must either be declared or defined before
it is used. It may be declared first and defined later. Every program consists of a set of a set of global variable   x << y                   // x shifted y bits to left (x * pow(2, y))
declarations and a set of function definitions (possibly in separate files), one of which must be:                    x >> y                   // x shifted y bits to right (x / pow(2, y))

                                                                                                                      x   < y                  //   Less than
int main() { statements... }      or                                                                                  x   <= y                 //   Less than or equal to
int main(int argc, char* argv[]) { statements... }                                                                    x   > y                  //   Greater than
                                                                                                                      x   >= y                 //   Greater than or equal to
argv is an array of argc strings from the command line. By convention, main returns status 0 if successful, 1 or
higher for errors.                                                                                                    x == y                   // Equals
                                                                                                                      x != y                   // Not equals
Functions with different parameters may have the same name (overloading). Operators except :: . .* ?: may be          x & y                    // Bitwise and (3 & 6 is 2)
overloaded. Precedence order is not affected. New operators may not be created.
                                                                                                                      x ^ y                    // Bitwise exclusive or (3 ^ 6 is 5)
EXPRESSIONS                                                                                                           x | y                    // Bitwise or (3 | 6 is 7)

                                                                                                                      x && y                   // x and then y (evaluates y only if x (not 0))
Operators are grouped by precedence, highest first. Unary operators and assignment evaluate right to left. All
others are left to right. Precedence does not affect order of evaluation, which is undefined. There are no run time   x || y                   // x or else y (evaluates y only if x is false
checks for arrays out of bounds, invalid pointers, etc.                                                               (0))
T::X                                    // Name X defined in class T
N::X                                    // Name X defined in namespace N                                              x = y                    // Assign y to x, returns new value of x
::X                                     // Global name X                                                              x += y                   // x = x + y, also -= *= /= <<= >>= &= |= ^=

t.x                                    // Member x of struct or class t                                               x ? y : z                // y if x is true (nonzero), else z
p->x                                   // Member x of struct or class pointed to by p
a[i]                                   // i'th element of array a                                                     throw x                  // Throw exception, aborts if not caught
f(x,y)                                 // Call to function f with arguments x and y
T(x,y)                                 // Object of class T initialized with x and y                                  x , y                    // evaluates x and y, returns y (seldom used)
x++                                    // Add 1 to x, evaluates to original x (postfix)
x--                                     // Subtract 1 from x, evaluates to original x
typeid(x)                              // Type of x                                                                   CLASSES
typeid(T)                              // Equals typeid(x) if x is a T
dynamic_cast<T>(x)                     // Converts x to a T, checked at run time                                      class T {                 // A new type
static_cast<T>(x)                      // Converts x to a T, not checked                                              private:                  // Section accessible only to T's member
reinterpret_cast<T>(x)                 // Interpret bits of x as a T                                                  functions
const_cast<T>(x)                       // Converts x to same type T but not const                                     protected:                // Also accessable to classes derived from T
                                                                                                                      public:                   // Accessable to all
sizeof x                               // Number of bytes used to represent object x                                    int x;                  // Member data
sizeof(T)                              // Number of bytes to represent type T                                           void f();               // Member function
++x                                    // Add 1 to x, evaluates to new value (prefix)                                   void g() {return;}      // Inline member function
--x                                     // Subtract 1 from x, evaluates to new value                                    void h() const;         // Does not modify any data members
~x                                     // Bitwise complement of x                                                       int operator+(int y);   // t+y means t.operator+(y)
!x                                     // true if x is 0, else false (1 or 0 in C)                                      int operator-();        // -t means t.operator-()
-x                                     // Unary minus                                                                   T(): x(1) {}            // Constructor with initialization list
+x                                     // Unary plus (default)                                                          T(const T& t): x(t.x) {} // Copy constructor
&x                                     // Address of x                                                                  T& operator=(const T& t) {x=t.x; return *this; } // Assignment operator
*p                                     // Contents of address p (*&x equals x)                                          ~T();                   // Destructor (automatic cleanup routine)
new T                                  // Address of newly allocated T object                                           explicit T(int a);      // Allow t=T(3) but not t=3
new T(x, y)                            // Address of a T initialized with x, y                                          operator int() const {return x;} // Allows int(t)
new T[x]                               // Address of allocated n-element array of T                                     friend void i();        // Global function i() has private access
delete p                               // Destroy and free object at address p                                          friend class U;         // Members of class U have private access
delete[] p                             // Destroy and free array of objects at p                                        static int y;           // Data shared by all T objects
(T) x                                  // Convert x to T (obsolete, use .._cast<T>(x))                                  static void l();        // Shared code. May access y but not x
                                                                                                                        class Z {};             // Nested class T::Z
x * y                                  // Multiply                                                                      typedef int V;          // T::V means int
x / y                                  // Divide (integers round toward 0)                                            };
x % y                                  // Modulo (result has sign of x)                                               void T::f() {             // Code for member function f of class T
                                                                                                                        this->x = x;}           // this is address of self (means x=x;)
x + y                                  // Add, or &x[y]                                                               int T::y = 2;             // Initialization of static member (required)
x - y                                  // Subtract, or number of elements from *x to *y                               T::l();                   // Call to static member
struct T {                             // Equivalent to: class T { public:                                         putc(c, f)                     //   fprintf(f, "%c", c);
  virtual void f();                    // May be overridden at run time by derived                                 putchar(c);                    //   putc(c, stdout);
class                                                                                                              fgets(s, n, f);                //   Read line into char s[n] from f. NULL if EOF
  virtual void g()=0; };               // Must be overridden (pure virtual)                                        gets(s)                        //   fgets(s, INT_MAX, f); no bounds check
class U: public T {};                  // Derived class U inherits all members of base                             fread(s, n, 1, f);             //   Read n bytes from f to s, return number read
T                                                                                                                  fwrite(s, n, 1, f);            //   Write n bytes of s to f, return number
class V: private T {};                 // Inherited members of T become private                                    written
class W: public T, public              U {}; // Multiple inheritance                                               fflush(f);                     //   Force buffered writes to f
class X: public virtual T              {}; // Classes derived from X have base T                                   fseek(f, n, SEEK_SET);         //   Position binary file f at n
directly                                                                                                           ftell(f);                      //   Position in f, -1L if error
                                                                                                                   rewind(f);                     //   fseek(f, 0L, SEEK_SET); clearerr(f);
                                                                                                                   feof(f);                       //   Is f at end of file?
All classes have a default copy constructor, assignment operator, and destructor, which perform the
                                                                                                                   ferror(f);                     //   Error in f?
corresponding operations on each data member and each base class as shown above. There is also a default no-       perror(s);                     //   Print char* s and error message
argument constructor (required to create arrays) if the class has no constructors. Constructors, assignment, and   clearerr(f);                   //   Clear error code for f
destructors do not inherit.
                                                                                                                   remove("filename");            //   Delete file, return 0 if OK
                                                                                                                   rename("old", "new");          //   Rename file, return 0 if OK
TEMPLATES                                                                                                          f = tmpfile();                 //   Create temporary file in mode "wb+"
                                                                                                                   tmpnam(s);                     //   Put a unique file name in char s[L_tmpnam]

template <class         T> T f(T t);        //            Overload f for all types
template <class         T> class X {        //            Class with type parameter T                              STDLIB.H, CSTDLIB (Misc. functions)
  X(T t); };                                //            A constructor
template <class         T> X<T>::X(T t) {} //             Definition of constructor                                atof(s); atol(s); atoi(s);//        Convert char* s to float, long, int
X<int> x(3);                                //            An object of type "X of int"                             rand(), srand(seed);      //        Random int 0 to RAND_MAX, reset rand()
template <class         T, class U=T, int n=0>             // Template with default                                void* p = malloc(n);      //        Allocate n bytes. Obsolete: use new
parameters                                                                                                         free(p);                  //        Free memory. Obsolete: use delete
                                                                                                                   exit(n);                  //        Kill program, return status n
NAMESPACES                                                                                                         system(s);                //        Execute OS command s (system dependent)
                                                                                                                   getenv("PATH");           //        Environment variable or 0 (system dependent)
                                                                                                                   abs(n); labs(ln);         //        Absolute value as int, long

namespace N {class T {};} // Hide name T
N::T t;                   // Use name T in namespace N                                                             STRING.H, CSTRING (Character array handling functions)
using namespace N;        // Make T visible without N::
                                                                                                                   Strings are type char[] with a '0' in the last element used.
C/C++ STANDARD LIBRARY                                                                                             strcpy(dst, src);                         // Copy string. Not bounds checked
                                                                                                                   strcat(dst, src);                         // Concatenate to dst. Not bounds checked
                                                                                                                   strcmp(s1, s2);                           // Compare, <0 if s1<s2, 0 if s1==s2, >0 if
                                                                                                                   s1>s2
Only the most commonly used functions are listed. Header files without .h are in namespace std. File names are     strncpy(dst, src, n);                     // Copy up to n chars, also strncat(), strncmp()
actually lower case.                                                                                               strlen(s);                                // Length of s not counting 0
                                                                                                                   strchr(s,c); strrchr(s,c);// Address of first/last char c in s or 0
                                                                                                                   strstr(s, sub);                           // Address of first substring in s or 0
STDIO.H, CSTDIO (Input/output)                                                                                        // mem... functions are for any pointer types (void*), length n bytes
                                                                                                                   memmove(dst, src, n);                     // Copy n bytes from src to dst
FILE* f=fopen("filename",              "r"); // Open for reading, NULL (0) if error                                memcmp(s1, s2, n);                        // Compare n bytes as in strcmp
  // Mode may also be "w"              (write) "a" append, "a+" update, "rb" binary                                memchr(s, c, n);                          // Find first byte c in s, return address or 0
fclose(f);                             // Close file f                                                             memset(s, c, n);                          // Set n bytes of s to c
fprintf(f, "x=%d", 3);                 // Print "x=3" Other conversions:
  "%5d %u %-8ld"                         // int width 5, unsigned int, long left just.                             CTYPE.H, CCTYPE (Character types)
  "%o %x %X %lx"                         // octal, hex, HEX, long hex
  "%f %5.1f"                             // float or double: 123.000000, 123.0
  "%e %g"                                // 1.23e2, use either f or g                                              isalnum(c);                    //   Is c a letter or digit?
  "%c %s"                                // char, char*                                                            isalpha(c); isdigit(c);        //   Is c a letter? Digit?
  "%%"                                   // %                                                                      islower(c); isupper(c);        //   Is c lower case? Upper case?
sprintf(s, "x=%d", 3);                 // Print to array of char s                                                 tolower(c); toupper(c);        //   Convert c to lower/upper case
printf("x=%d”, 3);                     // Print to stdout (screen unless redirected)
fprintf(stderr, ...                    // Print to standard error (not redirected)
getc(f);                               // Read one char (as an int) or EOF from f                                  MATH.H, CMATH (Floating point math)
ungetc(c, f);                          // Put back one c to f
getchar();                             // getc(stdin);                                                             sin(x); cos(x); tan(x);        // Trig functions, x (double) is in radians
asin(x); acos(x); atan(x);//    Inverses                                      STRING (Variable sized character array)
atan2(y, x);              //    atan(y/x)
sinh(x); cosh(x); tanh(x);//    Hyperbolic
exp(x); log(x); log10(x); //    e to the x, log base e, log base 10           string s1, s2="hello";        //   Create strings
pow(x, y); sqrt(x);       //    x to the y, square root                       s1.size(), s2.size();         //   Number of characters: 0, 5
ceil(x); floor(x);        //    Round up or down (as a double)                s1 += s2 + ' ' + "world";     //   Concatenation
fabs(x); fmod(x, y);      //    Absolute value, x mod y                       s1 == "hello world"           //   Comparison, also <, >, !=, etc.
                                                                              s1[0];                        //   'h'
                                                                              s1.substr(m, n);              //   Substring of size n starting at s1[m]
TIME.H, CTIME (Clock)                                                         s1.c_str();                   //   Convert to const char*
                                                                              getline(cin, s);              //   Read line ending in 'n'
clock()/CLOCKS_PER_SEC;   // Time in seconds since program started
time_t t=time(0);         // Absolute time in seconds or -1 if unknown        VECTOR (Variable sized array/stack with built in memory allocation)
tm* p=gmtime(&t);         // 0 if UCT unavailable, else p->tm_X where X
is:
  sec, min, hour, mday, mon (0-11), year (-1900), wday, yday, isdst           vector<int> a(10);        // a[0]..a[9] are int (default size is 0)
asctime(p);               // "Day Mon dd hh:mm:ss yyyyn"                     a.size();                 // Number of elements (10)
asctime(localtime(&t));   // Same format, local time                          a.push_back(3);           // Increase size to 11, a[10]=3
                                                                              a.back()=4;               // a[10]=4;
                                                                              a.pop_back();             // Decrease size by 1
ASSERT.H, CASSERT (Debugging aid)                                             a.front();                // a[0];
                                                                              a[20]=1;                  // Crash: not bounds checked
                                                                              a.at(20)=1;               // Like a[20] but throws out_of_range()
assert(e);                 // If e is false, print message and abort
                                                                              for (vector<int>::iterator p=a.begin(); p!=a.end(); ++p)
#define NDEBUG             // (before #include <assert.h>), turn off assert     *p=0;                   // Set all elements of a to 0
                                                                              vector<int> b(a.begin(), a.end()); // b is copy of a
NEW.H, NEW (Out of memory handler)                                            vector<T> c(n, x);        // c[0]..c[n-1] init to x
                                                                              T d[10]; vector<T> e(d, d+10);      // e is initialized from d

set_new_handler(handler); // Change behavior when out of memory
void handler(void) {throw bad_alloc();} // Default                            DEQUE (array/stack/queue)

IOSTREAM.H, IOSTREAM (Replaces stdio.h)                                       deque<T> is like vector<T>, but also supports:
                                                                              a.push_front(x);                      // Puts x at a[0], shifts elements toward back
                                                                              a.pop_front();                        // Removes a[0], shifts toward front
cin >> x >> y;              // Read words x and y (any type) from stdin
cout << "x=" << 3 << endl;  // Write line to stdout
cerr << x << y << flush;    // Write to stderr and flush                      UTILITY (Pair)
c = cin.get();              // c = getchar();
cin.get(c);                 // Read char
                                                                              pair<string, int> a("hello", 3); // A 2-element struct
cin.getline(s, n, 'n');    // Read line into char s[n] to 'n' (default)     a.first;                  // "hello"
if (cin)                    // Good state (not EOF)?                          a.second;                 // 3
                            // To read/write any type T:
istream& operator>>(istream& i, T& x) {i >> ...; x=...; return i;}
ostream& operator<<(ostream& o, const T& x) {return o << ...;}                MAP (associative array)

FSTREAM.H, FSTREAM (File I/O works like cin, cout as above)                   map<string, int> a;       // Map from string to int
                                                                              a["hello"]=3;             // Add or replace element a["hello"]
                                                                              for (map<string, int>::iterator p=a.begin(); p!=a.end(); ++p)
ifstream f1("filename");   //   Open text file for reading                      cout << (*p).first << (*p).second; // Prints hello, 3
if (f1)                    //   Test if open and input available              a.size();                 // 1
  f1 >> x;                 //   Read object from file
f1.get(s);                 //   Read char or line
f1.getline(s, n);          //   Read line into string s[n]                    ALGORITHM (A collection of 60 algorithms on sequences with iterators)
ofstream f2("filename");   //   Open file for writing
if (f2) f2 << x;           //   Write to file
                                                                              min(x, y); max(x, y);         //   Smaller/larger of x, y (any type defining <)
                                                                              swap(x, y);                   //   Exchange values of variables x and y
IOMANIP.H, IOMANIP (Output formatting)                                        sort(a, a+n);                 //   Sort array a[0]..a[n-1] by <
                                                                              sort(a.begin(), a.end());     //   Sort vector or deque
cout << setw(6) << setprecision(2) << setfill('0') << 3.1; // print
"003.10"

More Related Content

What's hot

DIWE - Advanced PHP Concepts
DIWE - Advanced PHP ConceptsDIWE - Advanced PHP Concepts
DIWE - Advanced PHP Concepts
Rasan Samarasinghe
 
Swift Introduction
Swift IntroductionSwift Introduction
Swift Introduction
Giuseppe Arici
 
Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++
Rasan Samarasinghe
 
Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5
Ismar Silveira
 
Ti1220 Lecture 2: Names, Bindings, and Scopes
Ti1220 Lecture 2: Names, Bindings, and ScopesTi1220 Lecture 2: Names, Bindings, and Scopes
Ti1220 Lecture 2: Names, Bindings, and ScopesEelco Visser
 
Variables: names, bindings, type, scope
Variables: names, bindings, type, scopeVariables: names, bindings, type, scope
Variables: names, bindings, type, scope
suthi
 
Esoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programmingEsoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programming
Rasan Samarasinghe
 
Denis Lebedev, Swift
Denis  Lebedev, SwiftDenis  Lebedev, Swift
Denis Lebedev, SwiftYandex
 
Pl sql programme
Pl sql programmePl sql programme
Pl sql programme
Dhilip Prakash
 
C Theory
C TheoryC Theory
C Theory
Shyam Khant
 
DITEC - Programming with Java
DITEC - Programming with JavaDITEC - Programming with Java
DITEC - Programming with Java
Rasan Samarasinghe
 
DIWE - Fundamentals of PHP
DIWE - Fundamentals of PHPDIWE - Fundamentals of PHP
DIWE - Fundamentals of PHP
Rasan Samarasinghe
 
Lab 5 2012/2012
Lab 5 2012/2012Lab 5 2012/2012
Lab 5 2012/2012alish sha
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
Mufaddal Haidermota
 
Qcon2011 functions rockpresentation_scala
Qcon2011 functions rockpresentation_scalaQcon2011 functions rockpresentation_scala
Qcon2011 functions rockpresentation_scala
Michael Stal
 
Storage classes in C
Storage classes in CStorage classes in C
Storage classes in C
Nitesh Bichwani
 
Java Programming
Java Programming Java Programming
Java Programming
RubaNagarajan
 
'C' language notes (a.p)
'C' language notes (a.p)'C' language notes (a.p)
'C' language notes (a.p)
Ashishchinu
 
Oop2010 Scala Presentation Stal
Oop2010 Scala Presentation StalOop2010 Scala Presentation Stal
Oop2010 Scala Presentation Stal
Michael Stal
 

What's hot (20)

DIWE - Advanced PHP Concepts
DIWE - Advanced PHP ConceptsDIWE - Advanced PHP Concepts
DIWE - Advanced PHP Concepts
 
Swift Introduction
Swift IntroductionSwift Introduction
Swift Introduction
 
Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++Esoft Metro Campus - Programming with C++
Esoft Metro Campus - Programming with C++
 
Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5
 
Ti1220 Lecture 2: Names, Bindings, and Scopes
Ti1220 Lecture 2: Names, Bindings, and ScopesTi1220 Lecture 2: Names, Bindings, and Scopes
Ti1220 Lecture 2: Names, Bindings, and Scopes
 
Variables: names, bindings, type, scope
Variables: names, bindings, type, scopeVariables: names, bindings, type, scope
Variables: names, bindings, type, scope
 
Esoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programmingEsoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programming
 
Denis Lebedev, Swift
Denis  Lebedev, SwiftDenis  Lebedev, Swift
Denis Lebedev, Swift
 
Pl sql programme
Pl sql programmePl sql programme
Pl sql programme
 
C Theory
C TheoryC Theory
C Theory
 
DITEC - Programming with Java
DITEC - Programming with JavaDITEC - Programming with Java
DITEC - Programming with Java
 
DIWE - Fundamentals of PHP
DIWE - Fundamentals of PHPDIWE - Fundamentals of PHP
DIWE - Fundamentals of PHP
 
Storage class in C Language
Storage class in C LanguageStorage class in C Language
Storage class in C Language
 
Lab 5 2012/2012
Lab 5 2012/2012Lab 5 2012/2012
Lab 5 2012/2012
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 
Qcon2011 functions rockpresentation_scala
Qcon2011 functions rockpresentation_scalaQcon2011 functions rockpresentation_scala
Qcon2011 functions rockpresentation_scala
 
Storage classes in C
Storage classes in CStorage classes in C
Storage classes in C
 
Java Programming
Java Programming Java Programming
Java Programming
 
'C' language notes (a.p)
'C' language notes (a.p)'C' language notes (a.p)
'C' language notes (a.p)
 
Oop2010 Scala Presentation Stal
Oop2010 Scala Presentation StalOop2010 Scala Presentation Stal
Oop2010 Scala Presentation Stal
 

Similar to C++ Quick Reference Sheet from Hoomanb.com

CppQuickRef.pdf
CppQuickRef.pdfCppQuickRef.pdf
CppQuickRef.pdf
kurimaru1
 
C++ QUICK REFERENCE.pdf
C++ QUICK REFERENCE.pdfC++ QUICK REFERENCE.pdf
C++ QUICK REFERENCE.pdf
fqerwqdfad
 
Write a program that converts an infix expression into an equivalent.pdf
Write a program that converts an infix expression into an equivalent.pdfWrite a program that converts an infix expression into an equivalent.pdf
Write a program that converts an infix expression into an equivalent.pdf
mohdjakirfb
 
Cartão de Referencia Padronizado Liguagem C
Cartão de Referencia Padronizado Liguagem  CCartão de Referencia Padronizado Liguagem  C
Cartão de Referencia Padronizado Liguagem CGe Ramos
 
Rust-lang
Rust-langRust-lang
Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]
Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]
Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]
Chris Adamson
 
Functions And Header Files In C++ | Bjarne stroustrup
Functions And Header Files In C++ | Bjarne stroustrupFunctions And Header Files In C++ | Bjarne stroustrup
Functions And Header Files In C++ | Bjarne stroustrup
SyedHaroonShah4
 
Scala - brief intro
Scala - brief introScala - brief intro
Scala - brief intro
Razvan Cojocaru
 
46630497 fun-pointer-1
46630497 fun-pointer-146630497 fun-pointer-1
46630497 fun-pointer-1
AmIt Prasad
 
Back to the Future with TypeScript
Back to the Future with TypeScriptBack to the Future with TypeScript
Back to the Future with TypeScript
Aleš Najmann
 
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdfModify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
arjuncorner565
 
Fix the following C program in linux. When it is compiled it gives t.pdf
Fix the following C program in linux. When it is compiled it gives t.pdfFix the following C program in linux. When it is compiled it gives t.pdf
Fix the following C program in linux. When it is compiled it gives t.pdf
mohamednihalshahru
 
functions of C++
functions of C++functions of C++
functions of C++
tarandeep_kaur
 
[C++] The Curiously Recurring Template Pattern: Static Polymorphsim and Expre...
[C++] The Curiously Recurring Template Pattern: Static Polymorphsim and Expre...[C++] The Curiously Recurring Template Pattern: Static Polymorphsim and Expre...
[C++] The Curiously Recurring Template Pattern: Static Polymorphsim and Expre...
Francesco Casalegno
 
Intro to c programming
Intro to c programmingIntro to c programming
Intro to c programming
Prabhu Govind
 
In C++Add the function min as an abstract function to the classar.pdf
In C++Add the function min as an abstract function to the classar.pdfIn C++Add the function min as an abstract function to the classar.pdf
In C++Add the function min as an abstract function to the classar.pdf
fantoosh1
 
presentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.pptpresentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.ppt
SandipPradhan23
 
golang_refcard.pdf
golang_refcard.pdfgolang_refcard.pdf
golang_refcard.pdf
Spam92
 

Similar to C++ Quick Reference Sheet from Hoomanb.com (20)

CppQuickRef.pdf
CppQuickRef.pdfCppQuickRef.pdf
CppQuickRef.pdf
 
C++ QUICK REFERENCE.pdf
C++ QUICK REFERENCE.pdfC++ QUICK REFERENCE.pdf
C++ QUICK REFERENCE.pdf
 
Write a program that converts an infix expression into an equivalent.pdf
Write a program that converts an infix expression into an equivalent.pdfWrite a program that converts an infix expression into an equivalent.pdf
Write a program that converts an infix expression into an equivalent.pdf
 
Cartão de Referencia Padronizado Liguagem C
Cartão de Referencia Padronizado Liguagem  CCartão de Referencia Padronizado Liguagem  C
Cartão de Referencia Padronizado Liguagem C
 
C ref card
C ref cardC ref card
C ref card
 
Rust-lang
Rust-langRust-lang
Rust-lang
 
Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]
Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]
Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]
 
Functions And Header Files In C++ | Bjarne stroustrup
Functions And Header Files In C++ | Bjarne stroustrupFunctions And Header Files In C++ | Bjarne stroustrup
Functions And Header Files In C++ | Bjarne stroustrup
 
Scala - brief intro
Scala - brief introScala - brief intro
Scala - brief intro
 
46630497 fun-pointer-1
46630497 fun-pointer-146630497 fun-pointer-1
46630497 fun-pointer-1
 
Back to the Future with TypeScript
Back to the Future with TypeScriptBack to the Future with TypeScript
Back to the Future with TypeScript
 
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdfModify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
 
Fix the following C program in linux. When it is compiled it gives t.pdf
Fix the following C program in linux. When it is compiled it gives t.pdfFix the following C program in linux. When it is compiled it gives t.pdf
Fix the following C program in linux. When it is compiled it gives t.pdf
 
functions of C++
functions of C++functions of C++
functions of C++
 
[C++] The Curiously Recurring Template Pattern: Static Polymorphsim and Expre...
[C++] The Curiously Recurring Template Pattern: Static Polymorphsim and Expre...[C++] The Curiously Recurring Template Pattern: Static Polymorphsim and Expre...
[C++] The Curiously Recurring Template Pattern: Static Polymorphsim and Expre...
 
Intro to c programming
Intro to c programmingIntro to c programming
Intro to c programming
 
Csharp4 basics
Csharp4 basicsCsharp4 basics
Csharp4 basics
 
In C++Add the function min as an abstract function to the classar.pdf
In C++Add the function min as an abstract function to the classar.pdfIn C++Add the function min as an abstract function to the classar.pdf
In C++Add the function min as an abstract function to the classar.pdf
 
presentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.pptpresentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.ppt
 
golang_refcard.pdf
golang_refcard.pdfgolang_refcard.pdf
golang_refcard.pdf
 

More from FrescatiStory

Șomerul
ȘomerulȘomerul
Șomerul
FrescatiStory
 
Colina crucilor, Lituania
Colina crucilor, LituaniaColina crucilor, Lituania
Colina crucilor, Lituania
FrescatiStory
 
Palatul lui Gigi Becali
Palatul lui Gigi BecaliPalatul lui Gigi Becali
Palatul lui Gigi Becali
FrescatiStory
 
Le marché aux oignons à Berne, Suisse
Le marché aux oignons à Berne, SuisseLe marché aux oignons à Berne, Suisse
Le marché aux oignons à Berne, Suisse
FrescatiStory
 
Photos inusitées
Photos inusitéesPhotos inusitées
Photos inusitées
FrescatiStory
 
Beautiful Greece
Beautiful GreeceBeautiful Greece
Beautiful Greece
FrescatiStory
 
Crucea Caraiman (Crucea Eroilor Neamului)
Crucea Caraiman (Crucea Eroilor Neamului)Crucea Caraiman (Crucea Eroilor Neamului)
Crucea Caraiman (Crucea Eroilor Neamului)
FrescatiStory
 
A fi părinte în lumea animalelor - Parenting Moments in the Animal World
A fi părinte în lumea animalelor - Parenting Moments in the Animal WorldA fi părinte în lumea animalelor - Parenting Moments in the Animal World
A fi părinte în lumea animalelor - Parenting Moments in the Animal World
FrescatiStory
 
România. Lecția de istorie
România. Lecția de istorieRomânia. Lecția de istorie
România. Lecția de istorie
FrescatiStory
 
Islamism
IslamismIslamism
Islamism
FrescatiStory
 
Alertă medicală - Un osuț foarte ascuțit
Alertă medicală - Un osuț foarte ascuțitAlertă medicală - Un osuț foarte ascuțit
Alertă medicală - Un osuț foarte ascuțit
FrescatiStory
 
Oameni, destine
Oameni, destineOameni, destine
Oameni, destine
FrescatiStory
 
Large Easter eggs around the world
Large Easter eggs around the worldLarge Easter eggs around the world
Large Easter eggs around the world
FrescatiStory
 
Patru secrete ale telefonului tău mobil
Patru secrete ale telefonului tău mobilPatru secrete ale telefonului tău mobil
Patru secrete ale telefonului tău mobil
FrescatiStory
 
Populația mahomedană în Europa
Populația mahomedană în EuropaPopulația mahomedană în Europa
Populația mahomedană în Europa
FrescatiStory
 
Bucovina altui veac
Bucovina altui veacBucovina altui veac
Bucovina altui veac
FrescatiStory
 
Plus qu’une photo / Mai mult decât o simplă fotografie / More than just a photo
Plus qu’une photo / Mai mult decât o simplă fotografie / More than just a photoPlus qu’une photo / Mai mult decât o simplă fotografie / More than just a photo
Plus qu’une photo / Mai mult decât o simplă fotografie / More than just a photo
FrescatiStory
 
Noiembrie frumoasă
Noiembrie frumoasăNoiembrie frumoasă
Noiembrie frumoasă
FrescatiStory
 
Niciodata toamna n-a fost mai frumoasa
Niciodata toamna n-a fost mai frumoasaNiciodata toamna n-a fost mai frumoasa
Niciodata toamna n-a fost mai frumoasa
FrescatiStory
 
Salina Turda
Salina TurdaSalina Turda
Salina Turda
FrescatiStory
 

More from FrescatiStory (20)

Șomerul
ȘomerulȘomerul
Șomerul
 
Colina crucilor, Lituania
Colina crucilor, LituaniaColina crucilor, Lituania
Colina crucilor, Lituania
 
Palatul lui Gigi Becali
Palatul lui Gigi BecaliPalatul lui Gigi Becali
Palatul lui Gigi Becali
 
Le marché aux oignons à Berne, Suisse
Le marché aux oignons à Berne, SuisseLe marché aux oignons à Berne, Suisse
Le marché aux oignons à Berne, Suisse
 
Photos inusitées
Photos inusitéesPhotos inusitées
Photos inusitées
 
Beautiful Greece
Beautiful GreeceBeautiful Greece
Beautiful Greece
 
Crucea Caraiman (Crucea Eroilor Neamului)
Crucea Caraiman (Crucea Eroilor Neamului)Crucea Caraiman (Crucea Eroilor Neamului)
Crucea Caraiman (Crucea Eroilor Neamului)
 
A fi părinte în lumea animalelor - Parenting Moments in the Animal World
A fi părinte în lumea animalelor - Parenting Moments in the Animal WorldA fi părinte în lumea animalelor - Parenting Moments in the Animal World
A fi părinte în lumea animalelor - Parenting Moments in the Animal World
 
România. Lecția de istorie
România. Lecția de istorieRomânia. Lecția de istorie
România. Lecția de istorie
 
Islamism
IslamismIslamism
Islamism
 
Alertă medicală - Un osuț foarte ascuțit
Alertă medicală - Un osuț foarte ascuțitAlertă medicală - Un osuț foarte ascuțit
Alertă medicală - Un osuț foarte ascuțit
 
Oameni, destine
Oameni, destineOameni, destine
Oameni, destine
 
Large Easter eggs around the world
Large Easter eggs around the worldLarge Easter eggs around the world
Large Easter eggs around the world
 
Patru secrete ale telefonului tău mobil
Patru secrete ale telefonului tău mobilPatru secrete ale telefonului tău mobil
Patru secrete ale telefonului tău mobil
 
Populația mahomedană în Europa
Populația mahomedană în EuropaPopulația mahomedană în Europa
Populația mahomedană în Europa
 
Bucovina altui veac
Bucovina altui veacBucovina altui veac
Bucovina altui veac
 
Plus qu’une photo / Mai mult decât o simplă fotografie / More than just a photo
Plus qu’une photo / Mai mult decât o simplă fotografie / More than just a photoPlus qu’une photo / Mai mult decât o simplă fotografie / More than just a photo
Plus qu’une photo / Mai mult decât o simplă fotografie / More than just a photo
 
Noiembrie frumoasă
Noiembrie frumoasăNoiembrie frumoasă
Noiembrie frumoasă
 
Niciodata toamna n-a fost mai frumoasa
Niciodata toamna n-a fost mai frumoasaNiciodata toamna n-a fost mai frumoasa
Niciodata toamna n-a fost mai frumoasa
 
Salina Turda
Salina TurdaSalina Turda
Salina Turda
 

C++ Quick Reference Sheet from Hoomanb.com

  • 1. const int c=3; // Constants must be initialized, cannot assign C++ QUICK REFERENCE to const int* p=a; // Contents of p (elements of a) are constant int* const p=a; // p (but not contents) are constant PREPROCESSOR const int* const p=a; // Both p and its contents are constant const int& cr=x; // cr cannot be assigned to change x // Comment to end of line /* Multi-line comment */ STORAGE CLASSES #include <stdio.h> // Insert standard header file #include "myfile.h" // Insert file in current directory #define X some text // Replace X with some text int x; // Auto (memory exists only while in scope) #define F(a,b) a+b // Replace F(1,2) with 1+2 static int x; // Global lifetime even if local scope #define X extern int x; // Information only, declared elsewhere some text // Line continuation #undef X // Remove definition STATEMENTS #if defined(X) // Condional compilation (#ifdef X) #else // Optional (#ifndef X or #if !defined(X)) #endif // Required after #if, #ifdef x=y; // Every expression is a statement int x; // Declarations are statements ; // Empty statement LITERALS { // A block is a single statement int x; // Scope of x is from declaration to end of 255, 0377, 0xff // Integers (decimal, octal, hex) block 2147483647L, 0x7fffffffl // Long (32-bit) integers a; // In C, declarations must precede statements 123.0, 1.23e2 // double (real) numbers } 'a', '141', 'x61' // Character (literal, octal, hex) if (x) a; // If x is true (not 0), evaluate a 'n', '', ''', '"' // Newline, backslash, single quote, double else if (y) b; // If not x and y (optional, may be repeated) quote else c; // If not x and not y (optional) "stringn" // Array of characters ending with newline and 0 while (x) a; // Repeat 0 or more times while x is true "hello" "world" // Concatenated strings true, false // bool constants 1 and 0 for (x; y; z) a; // Equivalent to: x; while(y) {a; z;} do a; while (x); // Equivalent to: a; while(x) a; DECLARATIONS switch (x) { // x must be int case X1: a; // If x == X1 (must be a const), jump here int x; // Declare x to be an integer (value undefined) case X2: b; // Else if x == X2, jump here int x=255; // Declare and initialize x to 255 default: c; // Else jump here (optional) short s; long l; // Usually 16 or 32 bit integer (int may be } either) break; // Jump out of while, do, or for loop, or switch char c='a'; // Usually 8 bit character continue; // Jump to bottom of while, do, or for loop unsigned char u=255; signed char s=-1; // char might be either return x; // Return x from function to caller unsigned long x=0xffffffffL; // short, int, long are signed try { a; } float f; double d; // Single or double precision real (never catch (T t) { b; } // If a throws a T, then jump here unsigned) catch (...) { c; } // If a throws something else, jump here bool b=true; // true or false, may also use int (1 or 0) int a, b, c; // Multiple declarations int a[10]; // Array of 10 ints (a[0] through a[9]) FUNCTIONS int a[]={0,1,2}; // Initialized array (or a[3]={0,1,2}; ) int a[2][3]={{1,2,3},{4,5,6}}; // Array of array of ints char s[]="hello"; // String (6 elements including '0') int f(int x, int); // f is a function taking 2 ints and returning int* p; // p is a pointer to (address of) int int char* s="hello"; // s points to unnamed array containing "hello" void f(); // f is a procedure taking no arguments void* p=NULL; // Address of untyped memory (NULL is 0) void f(int a=0); // f() is equivalent to f(0) int& r=x; // r is a reference to (alias of) int x f(); // Default return type is int enum weekend {SAT,SUN}; // weekend is a type with values SAT and SUN inline f(); // Optimize for speed enum weekend day; // day is a variable of type weekend f() { statements; } // Function definition (must be global) enum weekend {SAT=0,SUN=1}; // Explicit representation as int T operator+(T x, T y); // a+b (if type T) calls operator+(a, b) enum {SAT,SUN} day; // Anonymous enum T operator-(T x); // -a calls function operator-(a) typedef String char*; // String s; means char* s; T operator++(int); // postfix ++ or -- (parameter ignored) extern "C" {void f();} // f() was compiled in C
  • 2. Function parameters and return values may be of any type. A function must either be declared or defined before it is used. It may be declared first and defined later. Every program consists of a set of a set of global variable x << y // x shifted y bits to left (x * pow(2, y)) declarations and a set of function definitions (possibly in separate files), one of which must be: x >> y // x shifted y bits to right (x / pow(2, y)) x < y // Less than int main() { statements... } or x <= y // Less than or equal to int main(int argc, char* argv[]) { statements... } x > y // Greater than x >= y // Greater than or equal to argv is an array of argc strings from the command line. By convention, main returns status 0 if successful, 1 or higher for errors. x == y // Equals x != y // Not equals Functions with different parameters may have the same name (overloading). Operators except :: . .* ?: may be x & y // Bitwise and (3 & 6 is 2) overloaded. Precedence order is not affected. New operators may not be created. x ^ y // Bitwise exclusive or (3 ^ 6 is 5) EXPRESSIONS x | y // Bitwise or (3 | 6 is 7) x && y // x and then y (evaluates y only if x (not 0)) Operators are grouped by precedence, highest first. Unary operators and assignment evaluate right to left. All others are left to right. Precedence does not affect order of evaluation, which is undefined. There are no run time x || y // x or else y (evaluates y only if x is false checks for arrays out of bounds, invalid pointers, etc. (0)) T::X // Name X defined in class T N::X // Name X defined in namespace N x = y // Assign y to x, returns new value of x ::X // Global name X x += y // x = x + y, also -= *= /= <<= >>= &= |= ^= t.x // Member x of struct or class t x ? y : z // y if x is true (nonzero), else z p->x // Member x of struct or class pointed to by p a[i] // i'th element of array a throw x // Throw exception, aborts if not caught f(x,y) // Call to function f with arguments x and y T(x,y) // Object of class T initialized with x and y x , y // evaluates x and y, returns y (seldom used) x++ // Add 1 to x, evaluates to original x (postfix) x-- // Subtract 1 from x, evaluates to original x typeid(x) // Type of x CLASSES typeid(T) // Equals typeid(x) if x is a T dynamic_cast<T>(x) // Converts x to a T, checked at run time class T { // A new type static_cast<T>(x) // Converts x to a T, not checked private: // Section accessible only to T's member reinterpret_cast<T>(x) // Interpret bits of x as a T functions const_cast<T>(x) // Converts x to same type T but not const protected: // Also accessable to classes derived from T public: // Accessable to all sizeof x // Number of bytes used to represent object x int x; // Member data sizeof(T) // Number of bytes to represent type T void f(); // Member function ++x // Add 1 to x, evaluates to new value (prefix) void g() {return;} // Inline member function --x // Subtract 1 from x, evaluates to new value void h() const; // Does not modify any data members ~x // Bitwise complement of x int operator+(int y); // t+y means t.operator+(y) !x // true if x is 0, else false (1 or 0 in C) int operator-(); // -t means t.operator-() -x // Unary minus T(): x(1) {} // Constructor with initialization list +x // Unary plus (default) T(const T& t): x(t.x) {} // Copy constructor &x // Address of x T& operator=(const T& t) {x=t.x; return *this; } // Assignment operator *p // Contents of address p (*&x equals x) ~T(); // Destructor (automatic cleanup routine) new T // Address of newly allocated T object explicit T(int a); // Allow t=T(3) but not t=3 new T(x, y) // Address of a T initialized with x, y operator int() const {return x;} // Allows int(t) new T[x] // Address of allocated n-element array of T friend void i(); // Global function i() has private access delete p // Destroy and free object at address p friend class U; // Members of class U have private access delete[] p // Destroy and free array of objects at p static int y; // Data shared by all T objects (T) x // Convert x to T (obsolete, use .._cast<T>(x)) static void l(); // Shared code. May access y but not x class Z {}; // Nested class T::Z x * y // Multiply typedef int V; // T::V means int x / y // Divide (integers round toward 0) }; x % y // Modulo (result has sign of x) void T::f() { // Code for member function f of class T this->x = x;} // this is address of self (means x=x;) x + y // Add, or &x[y] int T::y = 2; // Initialization of static member (required) x - y // Subtract, or number of elements from *x to *y T::l(); // Call to static member
  • 3. struct T { // Equivalent to: class T { public: putc(c, f) // fprintf(f, "%c", c); virtual void f(); // May be overridden at run time by derived putchar(c); // putc(c, stdout); class fgets(s, n, f); // Read line into char s[n] from f. NULL if EOF virtual void g()=0; }; // Must be overridden (pure virtual) gets(s) // fgets(s, INT_MAX, f); no bounds check class U: public T {}; // Derived class U inherits all members of base fread(s, n, 1, f); // Read n bytes from f to s, return number read T fwrite(s, n, 1, f); // Write n bytes of s to f, return number class V: private T {}; // Inherited members of T become private written class W: public T, public U {}; // Multiple inheritance fflush(f); // Force buffered writes to f class X: public virtual T {}; // Classes derived from X have base T fseek(f, n, SEEK_SET); // Position binary file f at n directly ftell(f); // Position in f, -1L if error rewind(f); // fseek(f, 0L, SEEK_SET); clearerr(f); feof(f); // Is f at end of file? All classes have a default copy constructor, assignment operator, and destructor, which perform the ferror(f); // Error in f? corresponding operations on each data member and each base class as shown above. There is also a default no- perror(s); // Print char* s and error message argument constructor (required to create arrays) if the class has no constructors. Constructors, assignment, and clearerr(f); // Clear error code for f destructors do not inherit. remove("filename"); // Delete file, return 0 if OK rename("old", "new"); // Rename file, return 0 if OK TEMPLATES f = tmpfile(); // Create temporary file in mode "wb+" tmpnam(s); // Put a unique file name in char s[L_tmpnam] template <class T> T f(T t); // Overload f for all types template <class T> class X { // Class with type parameter T STDLIB.H, CSTDLIB (Misc. functions) X(T t); }; // A constructor template <class T> X<T>::X(T t) {} // Definition of constructor atof(s); atol(s); atoi(s);// Convert char* s to float, long, int X<int> x(3); // An object of type "X of int" rand(), srand(seed); // Random int 0 to RAND_MAX, reset rand() template <class T, class U=T, int n=0> // Template with default void* p = malloc(n); // Allocate n bytes. Obsolete: use new parameters free(p); // Free memory. Obsolete: use delete exit(n); // Kill program, return status n NAMESPACES system(s); // Execute OS command s (system dependent) getenv("PATH"); // Environment variable or 0 (system dependent) abs(n); labs(ln); // Absolute value as int, long namespace N {class T {};} // Hide name T N::T t; // Use name T in namespace N STRING.H, CSTRING (Character array handling functions) using namespace N; // Make T visible without N:: Strings are type char[] with a '0' in the last element used. C/C++ STANDARD LIBRARY strcpy(dst, src); // Copy string. Not bounds checked strcat(dst, src); // Concatenate to dst. Not bounds checked strcmp(s1, s2); // Compare, <0 if s1<s2, 0 if s1==s2, >0 if s1>s2 Only the most commonly used functions are listed. Header files without .h are in namespace std. File names are strncpy(dst, src, n); // Copy up to n chars, also strncat(), strncmp() actually lower case. strlen(s); // Length of s not counting 0 strchr(s,c); strrchr(s,c);// Address of first/last char c in s or 0 strstr(s, sub); // Address of first substring in s or 0 STDIO.H, CSTDIO (Input/output) // mem... functions are for any pointer types (void*), length n bytes memmove(dst, src, n); // Copy n bytes from src to dst FILE* f=fopen("filename", "r"); // Open for reading, NULL (0) if error memcmp(s1, s2, n); // Compare n bytes as in strcmp // Mode may also be "w" (write) "a" append, "a+" update, "rb" binary memchr(s, c, n); // Find first byte c in s, return address or 0 fclose(f); // Close file f memset(s, c, n); // Set n bytes of s to c fprintf(f, "x=%d", 3); // Print "x=3" Other conversions: "%5d %u %-8ld" // int width 5, unsigned int, long left just. CTYPE.H, CCTYPE (Character types) "%o %x %X %lx" // octal, hex, HEX, long hex "%f %5.1f" // float or double: 123.000000, 123.0 "%e %g" // 1.23e2, use either f or g isalnum(c); // Is c a letter or digit? "%c %s" // char, char* isalpha(c); isdigit(c); // Is c a letter? Digit? "%%" // % islower(c); isupper(c); // Is c lower case? Upper case? sprintf(s, "x=%d", 3); // Print to array of char s tolower(c); toupper(c); // Convert c to lower/upper case printf("x=%d”, 3); // Print to stdout (screen unless redirected) fprintf(stderr, ... // Print to standard error (not redirected) getc(f); // Read one char (as an int) or EOF from f MATH.H, CMATH (Floating point math) ungetc(c, f); // Put back one c to f getchar(); // getc(stdin); sin(x); cos(x); tan(x); // Trig functions, x (double) is in radians
  • 4. asin(x); acos(x); atan(x);// Inverses STRING (Variable sized character array) atan2(y, x); // atan(y/x) sinh(x); cosh(x); tanh(x);// Hyperbolic exp(x); log(x); log10(x); // e to the x, log base e, log base 10 string s1, s2="hello"; // Create strings pow(x, y); sqrt(x); // x to the y, square root s1.size(), s2.size(); // Number of characters: 0, 5 ceil(x); floor(x); // Round up or down (as a double) s1 += s2 + ' ' + "world"; // Concatenation fabs(x); fmod(x, y); // Absolute value, x mod y s1 == "hello world" // Comparison, also <, >, !=, etc. s1[0]; // 'h' s1.substr(m, n); // Substring of size n starting at s1[m] TIME.H, CTIME (Clock) s1.c_str(); // Convert to const char* getline(cin, s); // Read line ending in 'n' clock()/CLOCKS_PER_SEC; // Time in seconds since program started time_t t=time(0); // Absolute time in seconds or -1 if unknown VECTOR (Variable sized array/stack with built in memory allocation) tm* p=gmtime(&t); // 0 if UCT unavailable, else p->tm_X where X is: sec, min, hour, mday, mon (0-11), year (-1900), wday, yday, isdst vector<int> a(10); // a[0]..a[9] are int (default size is 0) asctime(p); // "Day Mon dd hh:mm:ss yyyyn" a.size(); // Number of elements (10) asctime(localtime(&t)); // Same format, local time a.push_back(3); // Increase size to 11, a[10]=3 a.back()=4; // a[10]=4; a.pop_back(); // Decrease size by 1 ASSERT.H, CASSERT (Debugging aid) a.front(); // a[0]; a[20]=1; // Crash: not bounds checked a.at(20)=1; // Like a[20] but throws out_of_range() assert(e); // If e is false, print message and abort for (vector<int>::iterator p=a.begin(); p!=a.end(); ++p) #define NDEBUG // (before #include <assert.h>), turn off assert *p=0; // Set all elements of a to 0 vector<int> b(a.begin(), a.end()); // b is copy of a NEW.H, NEW (Out of memory handler) vector<T> c(n, x); // c[0]..c[n-1] init to x T d[10]; vector<T> e(d, d+10); // e is initialized from d set_new_handler(handler); // Change behavior when out of memory void handler(void) {throw bad_alloc();} // Default DEQUE (array/stack/queue) IOSTREAM.H, IOSTREAM (Replaces stdio.h) deque<T> is like vector<T>, but also supports: a.push_front(x); // Puts x at a[0], shifts elements toward back a.pop_front(); // Removes a[0], shifts toward front cin >> x >> y; // Read words x and y (any type) from stdin cout << "x=" << 3 << endl; // Write line to stdout cerr << x << y << flush; // Write to stderr and flush UTILITY (Pair) c = cin.get(); // c = getchar(); cin.get(c); // Read char pair<string, int> a("hello", 3); // A 2-element struct cin.getline(s, n, 'n'); // Read line into char s[n] to 'n' (default) a.first; // "hello" if (cin) // Good state (not EOF)? a.second; // 3 // To read/write any type T: istream& operator>>(istream& i, T& x) {i >> ...; x=...; return i;} ostream& operator<<(ostream& o, const T& x) {return o << ...;} MAP (associative array) FSTREAM.H, FSTREAM (File I/O works like cin, cout as above) map<string, int> a; // Map from string to int a["hello"]=3; // Add or replace element a["hello"] for (map<string, int>::iterator p=a.begin(); p!=a.end(); ++p) ifstream f1("filename"); // Open text file for reading cout << (*p).first << (*p).second; // Prints hello, 3 if (f1) // Test if open and input available a.size(); // 1 f1 >> x; // Read object from file f1.get(s); // Read char or line f1.getline(s, n); // Read line into string s[n] ALGORITHM (A collection of 60 algorithms on sequences with iterators) ofstream f2("filename"); // Open file for writing if (f2) f2 << x; // Write to file min(x, y); max(x, y); // Smaller/larger of x, y (any type defining <) swap(x, y); // Exchange values of variables x and y IOMANIP.H, IOMANIP (Output formatting) sort(a, a+n); // Sort array a[0]..a[n-1] by < sort(a.begin(), a.end()); // Sort vector or deque cout << setw(6) << setprecision(2) << setfill('0') << 3.1; // print "003.10"