Initial commit
This commit is contained in:
38
cpp/Типы данных/atomic.cpp
Normal file
38
cpp/Типы данных/atomic.cpp
Normal 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;
|
||||
}
|
||||
35
cpp/Типы данных/hash_table.cpp
Normal file
35
cpp/Типы данных/hash_table.cpp
Normal 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;
|
||||
}
|
||||
35
cpp/Типы данных/set.cpp
Normal file
35
cpp/Типы данных/set.cpp
Normal 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;
|
||||
}
|
||||
37
cpp/Типы данных/векторы.cpp
Normal file
37
cpp/Типы данных/векторы.cpp
Normal 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;
|
||||
}
|
||||
22
cpp/Типы данных/массивы.cpp
Normal file
22
cpp/Типы данных/массивы.cpp
Normal 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;
|
||||
}
|
||||
35
cpp/Типы данных/строки.cpp
Normal file
35
cpp/Типы данных/строки.cpp
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user