
- •Строки стандартного класса string 2
- •Примеры использования методов строк-объектов 5
- •Стандартная библиотека шаблонов 14
- •Шаблонный класс для представления динамических одномерных массивов 35 Строки стандартного класса string
- •Операции
- •Методы класса string
- •Примеры использования методов строк-объектов Примеры работы со строками разных типов
- •Определение строк, присваивание, конкатенация, вычисление длины
- •Ввод-вывод
- •Методы корректировки
- •Доступ к элементу строки, метод at, метод copy
- •Методы сравнения
- •Методы поиска подстроки
- •Выделение подстроки, метод substr
- •Обеспечение ввода символов только из заданного набора
- •Подсчет количества вхождений слова в текст
- •Вывод вопросительных предложений
- •Стандартная библиотека шаблонов
- •Контейнеры
- •Общие методы и операции контейнеров Способы определения объекта для последовательного контейнера
- •Оценка числа элементов и размеров контейнера
- •Сравнение контейнеров
- •Присваивание контейнеров и обмен содержимым
- •Методы частного применения
- •Итераторы
- •Алгоритмы
- •Примеры Использование контейнера vector и его итераторов для вычисления диапазона копирования элементов массива
- •Использование контейнера vector при сортировке строк
- •Использование контейнера vector при считывании чисел из файла
- •Использование контейнера vector при считывании строк из файла
- •Использование контейнера list для реверса последовательности элементов
- •Демонстрация обратного итератора
- •Использование алгоритма find()для поиска заданного числа
- •Использование контейнера list при считывании чисел из файла
- •Использование контейнера list при считывании строк из файла
- •Использование контейнера list и потокового итератора при выводе последовательности структур на экран
- •Использование адаптера stack при считывании чисел из файла
- •Вычисление числа объектов с заданным значением
- •Поиск первого объекта с заданным значением
- •Поиск в массиве строк заданного имени
- •Использование потокового итератора при чтении вещественных чисел с клавиатуры и записи их в файл
- •Использование потокового итератора при чтении чисел из файла и выводе их на экран
- •Шаблонный класс для представления динамических одномерных массивов
Примеры Использование контейнера vector и его итераторов для вычисления диапазона копирования элементов массива
#include <vector>
#include <algorithm>
int main()
{
int beginRange, endRange;
int arr[] = { 11, 13, 15, 17, 19, 21, 23, 25, 27, 29 };
vector<int> v1(arr, arr+10); // инициализация вектора v1
vector<int> v2(10); // инициализация вектора v2
cout << "Enter range to be copied (example: 2 5): ";
cin >> beginRange >> endRange;
vector<int>::iterator iter1 = v1.begin() + beginRange;
vector<int>::iterator iter2 = v1.begin() + endRange;
vector<int>::iterator iter3;
// копирование диапазона от v1 до v2
iter3 = copy( iter1, iter2, v2.begin() );
//iter3 – указание на элемент, следующий за последним
iter1 = v2.begin();
while(iter1 != iter3)
cout << *iter1++ << ' ';
cout << endl;
_getch();
return 0;
}
Использование контейнера vector при сортировке строк
#include <string>
#pragma warning (disable:4786) //Microsoft only
#include <vector>
#include <algorithm>
int main()
{
vector<string> vectStrings;
string word;
char ch;
do {
cout << "Enter a word: ";
cin >> word; //ввод слова
vectStrings.push_back(word); //добавление слова в массив
cout << "Enter another ('y' or 'n'): ";
cin >> ch;
} while(ch == 'y');
sort( vectStrings.begin(), vectStrings.end() );//сортировка массива
for(int k=0; k<vectStrings.size(); k++) //вывод строк
cout << vectStrings[k] << endl;
_getch();
return 0;
}
Использование контейнера vector при считывании чисел из файла
Программа считывает числа из файла, сортирует их по возрастанию и выводит на экран. Для формирования последовательности чисел используем контейнер vector. Сортировка элементов выполняется с использованием алгоритма sort.
#include <vector>
#include <algorithm>
#include <fstream>
int main() {
ifstream in ("num.txt"); //открытие потока для ввода
if (!in) {cerr << "File not found\n"; _getch(); exit(1);}
vector<int> v; //создаем пустой контейнер из чисел
int x;
while (in >> x) v.push_back(x); //ввод чисел из файла и размещение // в конец контейнера
vector<int>::const_iterator i; //определение константного итератора
for (i=v.begin(); i!=v.end(); i++) //массив до сортировки
cout << *i << " ";
cout << "\n";
sort(v.begin(), v.end()); //вызов алгоритма сортировки для всего диапазона
for (i=v.begin(); i!=v.end(); i++) //массив после сортировки
cout << *i << " ";
cout << endl;
_getch();
return 0;
}
Использование контейнера vector при считывании строк из файла
Программа считывает строки из файла, сортирует их по возрастанию и выводит на экран. Для формирования последовательности строк используем контейнер vector. Сортировка элементов выполняется с использованием алгоритма sort.
#include <vector>
#include <algorithm>
int main() {
ifstream in ("num.txt"); //открытие потока для ввода
if (!in) {cerr << "File not found\n"; _getch(); exit(1);}
vector<string> sv; //создаем пустой контейнер из строк
string s;
while (in >> s) sv.push_back(s); //ввод строк из файла и размещение
//в конец контейнера
for (int k=0; k<sv.size(); k++) //массив строк до сортировки
cout << sv[k] << endl;
cout << "\n";
sort(sv.begin(), sv.end()); //вызов алгоритма сортировки в диапазоне
for (int k=0; k<sv.size(); k++) //массив строк после сортировки
cout << sv[k] << endl;
cout << endl;
_getch();
return 0;
}