Added: C++ projects
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
#include <iostream>
|
||||
#include <list>
|
||||
#include <vector>
|
||||
|
||||
#include "helpers.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
// int main()
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
// C arrays
|
||||
int numbers[10];
|
||||
|
||||
for (int i = 0; i < 10; ++i)
|
||||
{
|
||||
numbers[i] = 0;
|
||||
}
|
||||
|
||||
int numbers2[] = {0, 1, 2, 3, 4};
|
||||
int numbers3[10] = {0, 1, 2, 3, 4};
|
||||
|
||||
numbers[0] = 1;
|
||||
|
||||
cout << "numbers[5]: " << numbers[5] << endl;
|
||||
cout << "numbers2[5]: " << numbers2[5] << endl;
|
||||
cout << "numbers3[5]: " << numbers3[5] << endl;
|
||||
|
||||
// 2D array - 10 columns, 5 rows
|
||||
int grid[ROWS * COLUMNS] = {};
|
||||
grid[calculateGridIndex(0, 0)] = 1;
|
||||
|
||||
int grid2[ROWS][COLUMNS] = {};
|
||||
|
||||
// size of an array has to be constant always
|
||||
const int COUNT = 10;
|
||||
int numbers4[COUNT] = {};
|
||||
|
||||
// "dynamic" heap arrays
|
||||
int count2 = 10;
|
||||
int* pNumbers = new int[count2];
|
||||
pNumbers[0] = 1;
|
||||
int* pNumbers2 = pNumbers; // pointer looks onto first element
|
||||
for (size_t i = 0; i < count2; i++) // size can't be used for heap arrays
|
||||
{
|
||||
cout << pNumbers2 << ": " << *pNumbers2 << endl;
|
||||
pNumbers2++;
|
||||
}
|
||||
delete[] pNumbers; // CAUTION - heap arrays have to be deleted with delete[]
|
||||
pNumbers = pNumbers2 = nullptr;
|
||||
|
||||
// 2d heap arrays
|
||||
int** pGrid = new int*[ROWS];
|
||||
for (size_t i = 0; i < ROWS; i++)
|
||||
{
|
||||
pGrid[i] = new int[COLUMNS];
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < ROWS; i++)
|
||||
{
|
||||
// delete inner arrays first
|
||||
delete[] pGrid[i];
|
||||
pGrid[i] = nullptr;
|
||||
}
|
||||
delete[] pGrid; // delete outer array
|
||||
pGrid = nullptr;
|
||||
|
||||
int length = sizeof(numbers) / sizeof(numbers[0]);
|
||||
int length2 = size(numbers);
|
||||
|
||||
printArray(numbers);
|
||||
printArray(numbers, length);
|
||||
|
||||
// stl collections
|
||||
std::vector<int> numbers5 = {0, 1, 2, 3, 4};
|
||||
vector<int> numbers6;
|
||||
vector<int> numbers7(100);
|
||||
|
||||
cout << "numbers5 size is " << numbers5.size() << " of " << numbers5.capacity() << endl;
|
||||
cout << "numbers6 size is " << numbers6.size() << " of " << numbers6.capacity() << endl;
|
||||
cout << "numbers7 size is " << numbers7.size() << " of " << numbers7.capacity() << endl;
|
||||
|
||||
numbers5.push_back(100);
|
||||
numbers6.push_back(100);
|
||||
numbers7.push_back(100);
|
||||
|
||||
cout << "numbers5 size is " << numbers5.size() << " of " << numbers5.capacity() << endl;
|
||||
cout << "numbers6 size is " << numbers6.size() << " of " << numbers6.capacity() << endl;
|
||||
cout << "numbers7 size is " << numbers7.size() << " of " << numbers7.capacity() << endl;
|
||||
|
||||
numbers5.pop_back();
|
||||
numbers5.pop_back();
|
||||
// numbers6.pop_back(); numbers6.pop_back(); // BE CAREFUL: also stl containers have no safety checks
|
||||
numbers7.pop_back();
|
||||
numbers7.pop_back();
|
||||
|
||||
cout << "numbers5 size is " << numbers5.size() << " of " << numbers5.capacity() << endl;
|
||||
cout << "numbers6 size is " << numbers6.size() << " of " << numbers6.capacity() << endl;
|
||||
cout << "numbers7 size is " << numbers7.size() << " of " << numbers7.capacity() << endl;
|
||||
|
||||
numbers6[0] = 200;
|
||||
numbers6.reserve(1000);
|
||||
numbers6.shrink_to_fit();
|
||||
|
||||
printArray(numbers6.data(), numbers6.size());
|
||||
|
||||
list<int> numbers8;
|
||||
list<int> numbers9 = {0, 1, 2, 3, 4};
|
||||
// numbers9[3] = 10; // random access is not available in list
|
||||
list<int>::iterator it = numbers9.begin();
|
||||
for (; it != numbers9.end(); ++it)
|
||||
{
|
||||
cout << *it << " ";
|
||||
}
|
||||
cout << endl;
|
||||
|
||||
numbers9.push_front(-1);
|
||||
numbers9.push_back(5);
|
||||
|
||||
it = numbers9.begin(); // -1
|
||||
it++; // 0
|
||||
it++; // 1
|
||||
it++; // 2
|
||||
numbers9.insert(it, 15);
|
||||
|
||||
for (it = numbers9.begin(); it != numbers9.end(); ++it)
|
||||
{
|
||||
cout << *it << " ";
|
||||
}
|
||||
cout << endl;
|
||||
|
||||
for (int n : numbers9)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
for_each(numbers9.begin(), numbers9.end(), [](int n) { cout << n << " "; });
|
||||
cout << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user