diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-04-14 20:42:26 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-04-14 20:42:26 +0200 |
| commit | 7ac812044bfe771178752a52d70b18bb297c1891 (patch) | |
| tree | 5f5faf0d627304cdfe1f1f45194b3da76653fff8 /cpp07/ex01 | |
| parent | efea8712aaf8169b1184cceb83705ca6b8783173 (diff) | |
| download | piscine_cpp-7ac812044bfe771178752a52d70b18bb297c1891.tar.gz piscine_cpp-7ac812044bfe771178752a52d70b18bb297c1891.tar.bz2 piscine_cpp-7ac812044bfe771178752a52d70b18bb297c1891.zip | |
cpp07 done, cpp06 ex00 and ex01 start
Diffstat (limited to 'cpp07/ex01')
| -rw-r--r-- | cpp07/ex01/Makefile | 35 | ||||
| -rw-r--r-- | cpp07/ex01/iter.cpp | 63 |
2 files changed, 98 insertions, 0 deletions
diff --git a/cpp07/ex01/Makefile b/cpp07/ex01/Makefile new file mode 100644 index 0000000..45180bc --- /dev/null +++ b/cpp07/ex01/Makefile @@ -0,0 +1,35 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2020/04/14 19:48:34 by charles #+# #+# # +# Updated: 2020/04/14 20:02:14 by charles ### ########.fr # +# # +# **************************************************************************** # + +NAME = iter + +CXX = clang++ +CXXFLAGS = -std=c++98 -Wall -Wextra -Werror + +SRC = iter.cpp +OBJ = $(SRC:.cpp=.o) + +all: $(NAME) + +$(NAME): $(OBJ) + $(CXX) -o $@ $< + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c -o $@ $^ + +clean: + rm -rf $(OBJ) + +fclean: clean + rm -rf $(NAME) + +re: fclean all diff --git a/cpp07/ex01/iter.cpp b/cpp07/ex01/iter.cpp new file mode 100644 index 0000000..80b29d3 --- /dev/null +++ b/cpp07/ex01/iter.cpp @@ -0,0 +1,63 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* iter.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/14 20:02:19 by charles #+# #+# */ +/* Updated: 2020/04/14 20:12:17 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <iostream> + +template<typename T> +void iter(T* ptr, size_t len, void (*f)(T* x)) +{ + for (size_t i = 0; i < len; i++) + f(ptr + i); +} + +template<typename T> +void timeTwo(T* x) +{ + *x *= 2; +} + +int main() +{ + int intArray[] = {1, 2, 3, 4, 10, 20, 30, -1, -2}; + size_t intArraySize = sizeof(intArray) / sizeof(int); + for (size_t i = 0; i < intArraySize; i++) + std::cout << intArray[i] << ", "; + std::cout << std::endl; + iter(intArray, intArraySize, timeTwo<int>); + for (size_t i = 0; i < intArraySize; i++) + std::cout << intArray[i] << ", "; + std::cout << std::endl; + std::cout << "--------------------------------------" << std::endl; + + float floatArray[] = {1.1, 2.2, 3.3, 4.3, 10.001, 20.9, 30.3, -1.2, -2.4}; + size_t floatArraySize = sizeof(floatArray) / sizeof(float); + for (size_t i = 0; i < floatArraySize; i++) + std::cout << floatArray[i] << ", "; + std::cout << std::endl; + iter(floatArray, floatArraySize, timeTwo<float>); + for (size_t i = 0; i < floatArraySize; i++) + std::cout << floatArray[i] << ", "; + std::cout << std::endl; + std::cout << "--------------------------------------" << std::endl; + + unsigned int uintArray[] = {1, 2, 3, 4, 10, 20, 30, 100, 2000}; + size_t uintArraySize = sizeof(uintArray) / sizeof(unsigned int); + for (size_t i = 0; i < uintArraySize; i++) + std::cout << uintArray[i] << ", "; + std::cout << std::endl; + iter(uintArray, uintArraySize, timeTwo<unsigned int>); + for (size_t i = 0; i < uintArraySize; i++) + std::cout << uintArray[i] << ", "; + std::cout << std::endl; + + return 0; +} |
