From d05d0063a73dedb4fcaaf130b08d91130213f0fa Mon Sep 17 00:00:00 2001 From: aortigos Date: Mon, 23 Mar 2026 14:45:44 +0100 Subject: [PATCH] Project made from zero --- ex00/main.cpp | 7 ++-- ex00/whatever.hpp | 33 +++++++++--------- ex01/iter.hpp | 26 +++++++++------ ex01/main.cpp | 73 ++++++++++++++++------------------------ ex02/Array/Array.hpp | 32 +++++++++--------- ex02/Array/Array.tpp | 79 +++++++++++++++++++++++--------------------- ex02/main.cpp | 13 +------- 7 files changed, 122 insertions(+), 141 deletions(-) diff --git a/ex00/main.cpp b/ex00/main.cpp index b56eea1..a10d81b 100644 --- a/ex00/main.cpp +++ b/ex00/main.cpp @@ -5,8 +5,8 @@ /* +:+ +:+ +:+ */ /* By: aortigos = 'a' && c <= 'z') + c = c - 32; +} + +void increment(int &n) +{ + n++; +} + template -void printElement(const T& elem) +void print(T const &x) { - std::cout << elem << " "; -} - -void toUpper(std::string& str) -{ - for (size_t i = 0; i < str.length(); i++) - str[i] = std::toupper(str[i]); -} - -void increment(int& x) -{ - x++; + std::cout << x << " "; } int main() { - // -------- STRING ARRAY -------- - std::string words[] = {"hola", "mundo", "iter"}; - size_t wordsLen = sizeof(words) / sizeof(words[0]); + char letters[] = {'h', 'o', 'l', 'a', 'm', 'u', 'n', 'd', 'o'}; + int numbers[] = {1, 2, 3, 4, 5}; - std::cout << "Original strings: "; - iter(words, wordsLen, printElement); + std::cout << "Before: "; + iter(letters, 9, print); + iter(letters, 9, toUpper); + std::cout << "\nAfter: "; + iter(letters, 9, print); + + std::cout << "\n\nBefore: "; + iter(numbers, 5, print); + iter(numbers, 5, increment); + std::cout << "\nAfter: "; + iter(numbers, 5, print); std::cout << std::endl; - - iter(words, wordsLen, toUpper); - - std::cout << "Uppercase strings: "; - iter(words, wordsLen, printElement); - std::cout << std::endl; - - - // -------- INT ARRAY -------- - int numbers[] = {1, 2, 3, 4}; - size_t numLen = sizeof(numbers) / sizeof(numbers[0]); - - std::cout << "\nOriginal ints: "; - iter(numbers, numLen, printElement); - std::cout << std::endl; - - iter(numbers, numLen, increment); - - std::cout << "Incremented ints: "; - iter(numbers, numLen, printElement); - std::cout << std::endl; - - return 0; -} +} \ No newline at end of file diff --git a/ex02/Array/Array.hpp b/ex02/Array/Array.hpp index dc25ef2..28f51e4 100644 --- a/ex02/Array/Array.hpp +++ b/ex02/Array/Array.hpp @@ -5,13 +5,12 @@ /* +:+ +:+ +:+ */ /* By: aortigos +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2026/03/21 17:04:01 by aortigos #+# #+# */ -/* Updated: 2026/03/21 17:04:01 by aortigos ### ########.fr */ +/* Created: 2026/03/23 14:28:55 by aortigos #+# #+# */ +/* Updated: 2026/03/23 14:28:55 by aortigos ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef ARRAY_HPP - # define ARRAY_HPP # include @@ -19,24 +18,23 @@ # include template -class Array +class Array { - private: - T *data; - unsigned int _size; + private: + T *data; + unsigned int length; - public: - Array(); - Array(unsigned int n); - Array(const Array &other); - Array &operator=(const Array &other); - ~Array(); + public: + Array(); + Array(const Array &other); + Array& operator=(const Array &other); + ~Array(); - T &operator[](unsigned int i); - T const &operator[](unsigned int i) const; - unsigned int size() const; + Array(unsigned int n); + T &operator[](unsigned int n); + unsigned int size() const; }; -#include "Array.tpp" +# include "Array.tpp" #endif diff --git a/ex02/Array/Array.tpp b/ex02/Array/Array.tpp index 5013436..bc7da8d 100644 --- a/ex02/Array/Array.tpp +++ b/ex02/Array/Array.tpp @@ -1,73 +1,78 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* Array.tpp :+: :+: :+: */ +/* Array.tpp :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: aortigos +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2026/03/21 17:09:36 by aortigos #+# #+# */ -/* Updated: 2026/03/22 21:42:21 by aortigos ### ########.fr */ +/* Created: 2026/03/23 14:28:55 by aortigos #+# #+# */ +/* Updated: 2026/03/23 14:28:55 by aortigos ### ########.fr */ /* */ /* ************************************************************************** */ +////////////////// +// Constructors // +////////////////// + template -Array::Array() : data(NULL), _size(0) +Array::Array() : data(NULL), length(0) { - // std::cout << "Default constructor called" << std::endl; + // std::cout << "Array default constructor called" << std::endl; } template -Array::Array(unsigned int n) : _size(n) +Array::Array(const Array &other) { - data = new T[n]; -} - -template -Array::Array(const Array &other) : _size(other._size) -{ - data = new T[other._size]; - for (unsigned int i = 0;i < _size; i++) - data[i] = other.data[i]; + data = new T[other.length](); + length = other.length; + for(unsigned int i = 0; i < length; i++) + { + data[i] = other.data[i]; + } + // std::cout << "Array copy constructor called" << std::endl; } template Array &Array::operator=(const Array &other) { - if (this != &other) - { - delete[] data; - _size = other._size; - data = new T[_size]; - for (unsigned int i = 0;i < _size; i++) - data[i] = other.data[i]; - } - return (*this); + if (this != &other) + { + // Copy attributes here + delete[] data; + data = new T[other.length](); + length = other.length; + for(unsigned int i = 0; i < length; i++) + { + data[i] = other.data[i]; + } + } + // std::cout << "Array copy assignment operator called" << std::endl; + return (*this); } template Array::~Array() { - delete[] data; + delete[] data; + // std::cout << "Array destructor called" << std::endl; } template -T &Array::operator[](unsigned int i) +Array::Array(unsigned int n) : length(n) { - if (i >= _size) - throw std::exception(); - return (data[i]); + data = new T[n](); } template -T const &Array::operator[](unsigned int i) const +T &Array::operator[](unsigned int n) { - if (i >= _size) - throw std::exception(); - return (data[i]); + if (n >= length) + throw std::exception(); + return (data[n]); } template -unsigned int Array::size() const +unsigned int Array::size() const { - return (_size); -} + return (this->length); +} \ No newline at end of file diff --git a/ex02/main.cpp b/ex02/main.cpp index 11191e8..e50005f 100644 --- a/ex02/main.cpp +++ b/ex02/main.cpp @@ -1,15 +1,4 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* main.cpp :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: aortigos #include "Array/Array.hpp" #define MAX_VAL 750