Программирование | Отладка | Web-технологии | Microsoft Office | Теор.информатика | Исслед-е операций | Операц. сис-мы | Новости |
Проектирование ИС | Исск. инт-т | Трансляторы | Об авторах | Карта сайта | Поиск |
Язык программирования Turbo Pascal |
Среда программирования Delphi 6 |
Язык программирования C++ |
Язык программирования C# |
Язык программирования Assembler |
Язык программирования Go |
Язык программирования Haskell |
Язык программирования Java |
Язык программирования Kotlin |
Язык программирования LISP |
Язык программирования Prolog |
Язык программирования Python |
Параллельные алгоритмы |
Сети Петри |
Начала |
Отладчик Turbo Debugger |
Основы HTML |
Технология Flash |
Язык программирования Perl |
Основы языка PHP |
Основы PhotoShop |
Основы JavaScript |
Основы CSS |
Основы CorelDRAW |
Библиотека jQuery |
Текстовый процессор Microsoft Word |
Электронные таблицы Microsoft Excel |
Система управления базами данных Microsoft Access |
Использование VBA в Microsoft Excel |
Место информатики в системе наук |
Общие сведения об информации |
Кодирование информации в теории Шеннона |
Основные понятия теории алгоритмов |
Классические формализации понятия 'алгоритм' |
Понятие рекурсии |
Сложность алгоритма |
Методы разработки алгоритмов |
Сложность задачи |
Информационное моделирование |
Основные понятия теории графов |
Алгоритмы поиска на графах |
Матроиды. 'Жадные' алгоритмы |
Динамическое программирование |
Алгоритмы |
UNIX и Linux |
Унифицированный язык моделирования UML |
Введение в машинное обучение с использованием Python |
Основы создания нейросети на Python |
Глубокое обучение на Python |
Начала |
Динамические структуры данных |
Библиотека RX |
Основные классы и события Delphi |
Основные компоненты Delphi |
Организация потоков |
Технология COM |
Язык программирования Object Pascal |
Локальные БД в Delphi |
Библиотека OWL |
Библиотека Qt |
Библиотека STL |
Библиотека шаблонов классов Borland |
Основы компьютерной графики |
Динамические структуры данных |
Начала |
Обработка исключительных ситуаций |
Оптимизация с помощью ассемблера |
Основы объектно-ориентированного программирования |
Потоки ввода-вывода |
Разное |
Редактор Resource Workshop |
Среда Visual C++ |
Программирование в Microsoft Visual C++ 2010 |
Технология CUDA |
Технология OLE |
Начала |
16-битное программирование |
32-битное программирование |
Основы логического программирования |
Динамические структуры данных |
Visual Prolog |
Библиотека PyQt5 |
Библиотека Tkinter |
Визуализация данных |
Начала |
Задачи ComputerScience |
Рекурсия |
Однострочники |
Вкладка RXControls |
Вкладка RXDBAware |
Вкладка RXTools |
Вкладка Standard |
Вкладка Additional |
Создание Internet-приложений |
Вкладка System |
Вкладка Win32 |
Вкладка Servers |
Технология ADO |
Вкладка QReport |
Вкладка InterBase |
Вкладка Dialogs |
Начала |
Среда программирования. Язык С/С++ |
На этом шаге мы рассмотрим пример сохранения в векторе объектов произвольного класса.
Помимо встроенных типов в вектор можно помещать объекты любого типа, включая объекты классов, создаваемых программистом. В данном примере вектор используется для хранения объектов класса three_d.
//--------------------------------------------------------------------------- #include <vcl.h> #include <iostream> #include <vector> #include <winuser.h> #include <conio.h> //необходимо для getch() #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused using namespace std; class three_d { int x, y, z; public: three_d() { x = y = z = 0; } three_d(int a, int b, int c) { x = a; y = b; z = c; } void show() { cout << x << ", " << y << ", " << z << "\n"; } three_d &operator+(int a) { x += a; y += a; z += a; return *this; } friend bool operator<(three_d a, three_d b); friend bool operator==(three_d a, three_d b); }; // Отображаем координаты X, Y, Z с помощью оператора // вывода для класса three_d. bool operator < (three_d a, three_d b) { return (a.x + a.y + a.z) < (b.x + b.y + b.z); } bool operator==(three_d a, three_d b) { return (a.x + a.y + a.z) == (b.x + b.y + b.z); } int main(int argc, char* argv[]) { vector<three_d> vec; unsigned int i; // Добавляем объекты в вектор. for(i=0; i<10; i++) vec.push_back(three_d(i, i+2, i-3)); // Отображаем содержимое вектора. for(i=0; i<vec.size(); i++) vec[i].show(); cout << endl; // Модифицируем объекты в векторе. for(i=0; i<vec.size(); i++) vec[i] = vec[i] + 10; // Отображаем содержимое модифицированного вектора. for(i=0; i<vec.size(); i++) vec[i].show(); getch(); return 0; } //---------------------------------------------------------------------------
Результаты выполнения этой программы представлены на рисунке 1.
Рис.1. Результат выполнения приложения
Со следующего шага мы начнем знакомиться со списками.