Add containers project with CMake setup and array-related functionality
- Implement `printArrayAtPosition` in `functions.cpp` with input validation. - Created `main.cpp` to demonstrate array operations using C arrays and `std::vector`. - Updated `ClassA` and `IComparable` with constructors, destructors, and deep copy logic. - Adjusted IntelliJ project configuration for new containers module.
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
cmake_minimum_required(VERSION 4.1)
|
||||
project(containers)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_FLAGS -pedantic-errors)
|
||||
|
||||
add_executable(containers
|
||||
main.cpp
|
||||
functions.cpp)
|
||||
@@ -0,0 +1,16 @@
|
||||
#include "functions.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
void printArrayAtPosition(int* array, int position) {
|
||||
if (array == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (position < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
std::cout << "size of array: " << sizeof(array) << std::endl;
|
||||
std::cout << array[position] << std::endl;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
//
|
||||
// Created by David Hackbarth on 20.02.26.
|
||||
//
|
||||
|
||||
#ifndef CONTAINERS_FUNCTIONS_H
|
||||
#define CONTAINERS_FUNCTIONS_H
|
||||
|
||||
void printArrayAtPosition(int* array, int position);
|
||||
|
||||
#endif //CONTAINERS_FUNCTIONS_H
|
||||
@@ -0,0 +1,39 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
#include "functions.h"
|
||||
|
||||
int main(int argc, const char* argv[]) {
|
||||
// C array
|
||||
int numbers[5] = {1, 2, 3, 4, 5}; // stack array
|
||||
const int count = 10;
|
||||
int numbers2[count];
|
||||
|
||||
int count2 = 10;
|
||||
int* numbers3 = new int[count2]; // heap array
|
||||
delete[] numbers3;
|
||||
numbers3 = nullptr;
|
||||
|
||||
// numbers[10] = 100;
|
||||
std::cout << "size of numbers: " << sizeof(numbers) << std::endl;
|
||||
|
||||
printArrayAtPosition(numbers, 19);
|
||||
|
||||
// vector
|
||||
std::vector<int> v = {1, 2, 3, 4, 5};
|
||||
|
||||
std::cout << "size of v: " << v.size() << "/" << v.capacity() << std::endl;
|
||||
|
||||
v.push_back(6);
|
||||
|
||||
std::cout << "size of v: " << v.size() << "/" << v.capacity() << std::endl;
|
||||
|
||||
// v[20] = 100;
|
||||
printArrayAtPosition(v.data(), 2);
|
||||
|
||||
v.pop_back();
|
||||
|
||||
std::cout << "size of v: " << v.size() << "/" << v.capacity() << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user