Sample Syntax Reference
We often distribute a reference sheet during exams that gives the syntax of common operations so that students do not need to memorize these details. Below is a sample such reference sheet. You may want to have this on hand when practicing or taking an exam.
This list isn’t comprehensive – for that, read the header files (available in Qt Creator) or view the online docs for standard C++ functions or the Stanford C++ libraries.
Standard string
s.at(index) or s[index] // access single char
s + text OR s += text
s.substr(start) // return new substring
s.substr(start, length)
s.find(key) // returns index or string::npos
s.erase(index, length) // erase, insert, replace destructively modify s
s.insert(index, text)
s.replace(index, length, text)
for (char ch: s) { ... } // chars visited in order
Stanford strlib.h
if (equalsIgnoreCase(s1, s2)) { ... }
if (endsWith(str, suffix)) { ... }
if (startsWith(str, prefix)) { ... }
if (stringContains(str, key) { ... }
integerToString(int)
stringToInteger(str)
realToString(double)
stringToReal(str)
stringSplit(str, delimiter) // returns Vector<string> of tokens
toLowerCase(str)
toUpperCase(str)
trim(str) // remove leading/trailing whitespace
Vector
Vector<T> v = {elem, elem, ... , elem};
v.add(elem) OR v += elem
v.clear()
v.get(index) OR v[index]
v.insert(index, elem)
if (v.isEmpty()) { ... }
v.remove(index)
v.set(index, elem) OR v[index] = elem
v.size()
for (T elem: v) { ... } // visited in order of index
Grid
Grid<T> g(nRows, nCols);
int numCells = grid.numRows() * grid.numCols()
if (grid.inBounds(row, col)) { ...}
grid[row][col] = value
for (T elem: grid) { ... } // visited left-to-right, top-to-bottom
GridLocation
GridLocation loc = {row, col};
grid[loc] = value
if (grid.inBounds(loc)) { ... }
GridLocation neighbor = {loc.row + 1, loc.col - 1};
if (loc == neighbor) { ... }
Stack
Stack<T> s = {bottom, ... , top};
s.push(elem)
s.peek() // Look at top
s.pop() // Removes top
s.size()
if (s.isEmpty()) { ... }
s.clear()
// no iterator, no direct access to elements other than top
Queue
Queue<T> q = {front, ... , back};
q.enqueue(elem)
q.peek() // Look at front
q.dequeue() // Removes front
q.size()
if (q.isEmpty()) { ... }
q.clear()
// no iterator, no direct access to elements other than front
Set (HashSet)
Set<T> s = {elem1, elem2, ... , elemN};
if (s.contains(elem)) { ... }
s.add(elem)
s + elem; s + set2; // union
s.remove(elem)
s - elem; s - set2; // difference
intersectSet = s1 * s2;
s.size()
if (s.isEmpty()) { ... }
if (s.isSubsetOf(s2)) { ... }
s.clear()
// Visited in sorted order (Set) or no particular order (HashSet)
for (T elem: set) { ... }
Map (HashMap)
Map<K, V> m = { { key1, val1}, ... {keyN, valN } };
m.put(key, value) OR m[key] = value
m.get(key) OR m[key] // bracket form auto-inserts default value if not present
if (m.containsKey(key)) { ... }
m.size()
if (m.isEmpty()) { ... }
m.remove(key)
m.clear()
Vector<K> keys = m.keys();
// Visited in sorted order (Map) or no particular order (HashMap)
for (K key: m) { ... }
Lexicon
Lexicon lex(filename);
if (lex.contains(word)) { ... }
if (lex.containsPrefix(prefix)) { ... }