Modernes C++ programmieren

Okt 20, 2024

listings-Chap02-README-onepage.md

Listings of Chap02.docx

This is the list of listings on one page. You can also view a linked summary.

GodboltId:911fxx3nq

Book listing lst-0001-book.cpp:

// https://godbolt.org/z/911fxx3nq
// modern101.cpp : Fibonacci console 
#include <iostream> 
int fib(int n) { 
    return n<=1 ? n : fib(n-2) + fib(n-1); 
} 
int main() { 
    std::cout << "Which Fibonacci number? "; 
    int n = 0; 
    std::cin >> n; 
    std::cout << "fib(" << n << ")=" << fib(n) << "\n"; 
}

Godbolt Listing lst-0001-godb.cpp, https://godbolt.org/z/911fxx3nq:

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/911fxx3nq
// modern101.cpp : Fibonacci console 
#include <iostream> 
int fib(int n) { 
    return n<=1 ? n : fib(n-2) + fib(n-1); 
} 
int main() { 
    std::cout << "Which Fibonacci number? "; 
    int n = 0; 
    std::cin >> n; 
    std::cout << "fib(" << n << ")=" << fib(n) << "\n"; 
}

GodboltId:3W1qY7b9x

Book listing lst-0002-book.cpp:

// https://godbolt.org/z/3W1qY7b9x 
// modern102.cpp : Fibonacci console 
#include <iostream> 
#include <map> 
int fib(int n) { 
    static std::map<int, int> table{}; 
    table[n] = n<=1 ? n : table[n-2] + table[n-1]; 
    return table[n]; 
} 
int main() { 
    std::cout << "How many Fibonacci numbers? "; 
    int n = 0; 
    std::cin >> n; 
    for (int i = 1; i <= n; ++i) 
        std::cout << "fib(" << i << ")=" << fib(i) << "\n"; 
}

Godbolt Listing lst-0002-godb.cpp, https://godbolt.org/z/3W1qY7b9x:

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/3W1qY7b9x 
// modern102.cpp : Fibonacci console 
#include <iostream> 
#include <map> 
int fib(int n) { 
    static std::map<int, int> table{}; 
    table[n] = n<=1 ? n : table[n-2] + table[n-1]; 
    return table[n]; 
} 
int main() { 
    std::cout << "How many Fibonacci numbers? "; 
    int n = 0; 
    std::cin >> n; 
    for (int i = 1; i <= n; ++i) 
        std::cout << "fib(" << i << ")=" << fib(i) << "\n"; 
}