Show Menu
Cheatography

C++ Basics Cheat Sheet by

Iterator for loop

for(std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
    it->doSomething();
 }

Lambda

[captures] (parameters) mutable -> return-type {body}
[] = argument att fånga (behandlas som globala variabler).
() = normala funktionsargument. 
-> return-type = datatyp att returnera. 
mutable = lägg till om du vill ändra på något. Non-const function. 
{} = function goes here. 
Lambda går att skriva helt utan (), -> return-type och mutable.

Felhan­tering

try {
    foo() //foo kastar ett error med throw(“Feltext”) någonstans i koden
}
catch(exception& e)
{
    std::cout << e.what() << std::endl; // blir “Feltext”
}

for_each loop med lambda

vector<int> v; 
int sum{0};
for_each(v.begin(), v.end(), &sum -> void {
    sum += x;
});

Läsa från fil med ifstream

ifstream file(“/some/path”)
string line;
vector<string> file_content;
while (getline(file, line)) {
    file_content.push_back(line);
}
 

Range-­based for loop

vector<int> v;
for(int i : v) { // i = förväntad datatyp
  //doSomething  
}

Hitta saker med egen jämförelse

find_if (InputIt first, InputIt last, UnaryPredicate boolFunction) //returns iterator to element if found, otherwise returns last

find_if_not() finns också.

Komman­dor­ads­arg­ument med validering

int main(int argc, char* argv[ ]) { // plocka ut argument.
    vector<string> arg(argv, argv + argc); 
    int num_of_iterations;
    istringstream arg(arg.at(1));
    if(!(arg >> num_of_iterations)) //om arg inte kan göras till int så kastas      logic_error {
        throw logic_error("Error meddelande");
    }
}

Huvudklass till subklass (Employee ← Boss)

Boss b = dynamic_cast<Boss>(employee);
if (b != nullptr) {
    std::cout << b -> get_bonus 
}

Konstr­ukt­ore­r/t­ill­delning

Ptr(Ptr const& rhs); //kopieringskostruktor
Ptr& operator = (Ptr const& rhs); //kopieringstilldelning
Ptr(Ptr && this) //flyttkonstruktor
Ptr& operator = (Ptr && rhs(?)) //flytt tilldelning

Slumpa tal

#include <random>
std::random_device rnd;
std::uniform_int_distribution<int> num(1,100); // tal mellan 1-100
std::cout << num(rnd) << std::endl;
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          More Cheat Sheets by Dockson