Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chahid001/cpp09
The C++ Module 09 delves into advanced concepts of the Standard Template Library (STL) through three comprehensive exercises.
https://github.com/chahid001/cpp09
cpp stl
Last synced: about 1 month ago
JSON representation
The C++ Module 09 delves into advanced concepts of the Standard Template Library (STL) through three comprehensive exercises.
- Host: GitHub
- URL: https://github.com/chahid001/cpp09
- Owner: chahid001
- Created: 2023-04-04T12:55:57.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-24T17:03:16.000Z (about 1 year ago)
- Last Synced: 2024-04-14T17:01:03.822Z (8 months ago)
- Topics: cpp, stl
- Language: C++
- Homepage:
- Size: 642 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CPP Module 09
The C++ Module 09 delves into advanced concepts of the Standard Template Library (STL) through three comprehensive exercises. It emphasizes adhering to C++98 standards while exploring Object-Oriented Programming principles.
## Exercices
### Ex00
"Bitcoin Exchange," requires creating a program to calculate Bitcoin values based on a provided database, focusing on error handling and container usage.
#### Example of input file
```bash
$> head input.txt
date | value
2011-01-03 | 3
2011-01-03 | 2
2011-01-03 | 1
2011-01-03 | 1.2
2011-01-09 | 1
2012-01-11 | -1
2001-42-42
2012-01-11 | 1
2012-01-11 | 2147483648
```
#### Deployement```bash
$> make$> ./btc
Error: could not open file.$> ./btc input.txt
2011-01-03 => 3 = 0.9
2011-01-03 => 2 = 0.6
2011-01-03 => 1 = 0.3
2011-01-03 => 1.2 = 0.36
2011-01-09 => 1 = 0.32
Error: not a positive number.
Error: bad input => 2001-42-42
2012-01-11 => 1 = 7.1
Error: too large a number.
$>```
### Ex01
"Reverse Polish Notation," involves developing a calculator using RPN, limiting numbers to less than 10 and handling basic operations.#### Example of standard use and Deployement
```bash
$> make$> ./RPN "8 9 * 9 - 9 - 9 - 4 - 1 +"
42
$> ./RPN "7 7 * 7 -"
42
$> ./RPN "1 2 * 2 / 2 * 2 4 - +"
0
$> ./RPN "(1 + 1)"
Error
$>
```### Ex02
"PmergeMe" necessitates implementing merge-insert sort algorithms with stringent requirements on container use and sorting large sets of positive integers.#### Example of standard use and Deployement
```bash
$> make$> ./PmergeMe 3 5 9 7 4
Before: 3 5 9 7 4
After: 3 4 5 7 9
Time to process a range of 5 elements with std::[..] : 0.00031 us
Time to process a range of 5 elements with std::[..] : 0.00014 us$> ./PmergeMe `shuf -i 1-100000 -n 3000 | tr "\n" " "`
Before: 141 79 526 321 [...]
After: 79 141 321 526 [...]
Time to process a range of 3000 elements with std::[..] : 62.14389 us
Time to process a range of 3000 elements with std::[..] : 69.27212 us$> ./PmergeMe "-1" "2"
Error$> # For OSX USER:
$> ./PmergeMe `jot -r 3000 1 100000 | tr '\n' ' '`
[...]
```