Initial commit

This commit is contained in:
2022-04-28 04:34:45 +03:00
commit 4c0cdb2f71
30 changed files with 1218 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
#include <iostream>
#include <cmath> // Функция pow
using namespace std;
int main() {
// Фундаментальные типы данных
// Numeric:
int myInt;
myInt = 5;
float myFloat = 6.23;
double myDouble = 6.2340282;
myInt = float(7) / 3; // Округляет вниз
cout << "Результат myInt = float(7)/3: " << myInt << endl; // 2
cout << "Результат 2+3*4: " << (2+3*4) << endl; // Тип integer, 14
cout << "Результат float(7)/3: " << float(7)/3 << endl; // Тип float, 2.33333
cout << "Результат 7/3: " << 7/3 << endl; // In C++ this is integer division, 2
cout << "Результат 7%3: " << 7%3 << endl; // Тип integer, 1
cout << "Результат 2^10: " << pow(2, 10) << endl; // Тип integer, 1024
cout << "Результат 2^100000: " << pow(2, 100000) << endl; // infinity?, inf
// Boolean
bool myBoolean;
// and - &&; or - ||; not - !;
// Character
char myCharacter = 'f'; // Single quotes (') for chars, double (") for strings
// Конвертация из одного типа в другой:
int origin = 50;
double origin_transformed = double(origin);
cout << "Преобразованная переменная: " << origin_transformed << endl;
return 0;
}

View File

@@ -0,0 +1,35 @@
#include <iostream>
#include <unordered_map>
#include <string>
using namespace std;
int main() {
/*
Синтаксис: unordered_map<тип_ключа, тип_значения> имя;
Методы:
.count(key) - true если существует ключ key, иначе false
.erase(key) - удалить запись с ключом key
.begin() - возвращает итератор к первому элементу
.end() - возвращет итератор точке после последнего элемента
*/
unordered_map<string, string> spnumbers;
spnumbers = { {"one", "uno"}, {"two", "dos"} };
spnumbers["three"] = "tres";
spnumbers["four"] = "cuatro";
cout << "Значение с ключом 'one': ";
cout << spnumbers["one"] << endl;
cout << "Размер таблицы: ";
cout << spnumbers.size() << endl;
// Итерация таблицы:
for (auto i=spnumbers.begin(); i!=spnumbers.end(); i++){
cout << i->first << ":";
cout << i->second << endl;
}
return 0;
}

View File

@@ -0,0 +1,35 @@
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
/* Множества
Синтаксис:
set<тип> имя = {n1, n2, n3...};
*/
unordered_set<int> mySet = {1, 3, 5, 78, 90};
unordered_set<int> mySet2 = {4, 9};
// Преобразование массива в множество:
char myChArr[] = {"aaabbbccc"};
unordered_set<char> mySet3 = unordered_set<char>(begin(myChArr), end(myChArr));
cout << "Длина множества: " << mySet3.size() << endl;
cout << "Элементы множества:" << endl;
for (auto iter = mySet3.begin(); iter != mySet3.end(); iter++) {
cout << *iter << endl;
}
// Преобразование строки в множество:
string myStr = "zfx";
mySet3 = unordered_set<char>(begin(myStr), end(myStr));
cout << "Длина множества: " << mySet3.size() << endl;
cout << "Элементы множества:" << endl;
for (auto iter = mySet3.begin(); iter != mySet3.end(); iter++) {
cout << *iter << endl;
}
return 0;
}

View File

@@ -0,0 +1,37 @@
#include <iostream>
#include <vector>
using namespace std;
int main() {
// Вектор - массив, который может расти
/* Создание вектора
Синтаксис: vector<тип> имя;
Методы:
.push_back(item) - добавить в конец (append)
.pop_back() - удалить последний элемент
.insert(i, item) - вставить элемент на индекс i
.erase(i) - удалить элемент с индексом i
.size() - возвращает размер, занимаемый элементами
.capacity() - возвращает размер выделенного места (вместимость)
.reserve(amount) - запросить изменение вместимости
*/
cout << "Векторы:" << endl;
vector<int> myVector;
/*
Если не зарезервировать место заранее, то при каждом выходе за пределы размеров вектора
весь массив будет копироваться в вдвое большее место в памяти
*/
// myVector.reserve(19);
for (int i=0; i<19; i++) {
myVector.push_back(i*i);
cout << myVector[i] << endl;
// cout << "capacity: " << myVector.capacity() << endl;
}
cout << myVector.size() << endl;
return 0;
}

View File

@@ -0,0 +1,22 @@
#include <iostream>
using namespace std;
int main() {
/* Создание смежного массива
Синтаксис: тип название[размер];
или: тип название[] = {n1, n2, n3...};
*/
int myArr[50];
int myArr2[] = {1, 2, 3, 4};
// Функции len нет, поэтому длина массива высчитывается из занимаемого места:
cout << "Длина массива: " << sizeof(myArr2) / sizeof(myArr2[0]) << endl;
// Для новых версий c++:
for(int item:myArr2) {
cout << item << endl;
}
return 0;
}

View File

@@ -0,0 +1,35 @@
#include <iostream>
using namespace std;
int main() {
/* Строки
Существует 2 типа: string (стиль c++) и массив char (стиль c)
Синтаксис:
string имя = "строка";
char имя = {"строка"};
Методы string:
.append(string) - добавить строку в конец
.push_back(char) - добавить символ в конец
.insert(i, string) - добавить строку на индекс i
.erase(i, j) - удалить элементы стоящие между i и j
.find(item) - возвращает индекс элемента
.length() - возвращает длину
.size() - тоже возвращает длину
*/
string myStr = "string";
char myChArr[] = {"string"};
cout << myStr << endl;
cout << "Размер: " << myStr.size() << "; Длина: " << myStr.length() << endl;
cout << "Позиция подстроки 'tr': " << myStr.find("tr") << endl;
cout << "Позиция подстроки 'if': " << myStr.find("if") << endl; // Выводит неприменимое число
cout << "Все символы строки 'string':"<< endl;
for (int i = 0; i < myStr.length(); i++) {
cout << myStr[i] << endl;
}
return 0;
}