#include #include #include #include using namespace std; #define INT_LIST list // simple text replacement // type definitions typedef list IntegerList; typedef IntegerList::iterator IntListIterator; void printArray(int numbers[]); void printArray(int numbers[], int count); int main() { // C Arrays int numbers[10]; for (size_t i = 0; i < 10; i++) { numbers[i] = 0; } numbers[0] = 10; cout << "numbers[5]: " << numbers[5] << endl; int numbers2[] = { 0, 1, 2, 3, 4, 5 }; int numbers3[10] = { 0, 1, 2, 3, 4, 5 }; // 2d array - 10 rows, 5 columns int numbers4[10 * 5]; numbers4[3 + 7 * 5] = 10; // 3rd column, 7th row // size have to be always const, except by using pointers const int count = 10; int numbers5[count]; int length = sizeof(numbers2) / sizeof(numbers2[0]); // works locally only for (size_t i = 0; i < std::size(numbers2); i++) // size is working locally only { cout << numbers2[i] << " "; } cout << endl; cout << "sizeof(numbers2): " << sizeof(numbers2) << endl; printArray(numbers2); printArray(numbers2, std::size(numbers2)); // stl collections vector numbers6; vector numbers7 = { 0, 1, 2, 3 }; numbers6.push_back(10); // add an item at the end numbers6.pop_back(); // remove an item at the end numbers7[2] *= 10; vector numbers8; numbers8.reserve(100); cout << "size of numbers8: " << numbers8.size() << endl; cout << "capacity of numbers8: " << numbers8.capacity() << endl; printArray(numbers7.data(), numbers7.size()); list numbersList; numbersList.push_back(10); numbersList.push_front(100); //numbersList[1] = 200; // random access is not available for lists list::iterator it = numbersList.begin(); for (; it != numbersList.end(); it++) { cout << *it << " "; } cout << endl; numbersList.insert(--it, 20); for (it = numbersList.begin(); it != numbersList.end(); it++) { cout << *it << " "; } cout << endl; for (int n : numbersList) { } for_each(numbers7.begin(), numbers7.end(), [](const int& n) { cout << n << " "; }); return 0; } void printArray(int numbers[]) { int length = sizeof(numbers) / sizeof(numbers[0]); // works not outside of local scope cout << "sizeof(numbers2): " << sizeof(numbers) << endl; //for (size_t i = 0; i < std::size(numbers); i++) // size is not working outside of local scope //{ // cout << numbers[i] << " "; //} //cout << endl; } void printArray(int numbers[], int count) { for (size_t i = 0; i < count; i++) { cout << numbers[i] << " "; } cout << endl; }