Пример решения задачи базового уровня
Задача: Пользователь вводит в программу через консоль последовательность пар ключ-значение из положительных целых чисел, завершая ввод одним нулем либо одним отрицательным числом. Затем пользователь вводит еще одно положительное число-ключ. Программа ищет среди ранее введенных пар ключ-значение запись с таким ключом и, в случае успеха, выдает на экране соответствующее ему значение. Если такого ключа нет, программа пишет сообщение об ошибке. Если ключ встречается более одного раза, программа выдает последнее из введенных значений.
Решение:
#include "integer_map.hpp"
#include <iostream>
intmain ()
{
// Создаем объект-отображение
IntegerMap * pMap = IntegerMapCreate();
// Вводим последовательность пар ключ-значение
std::cout << "Input sequence of integer key-value pairs: " << std::endl;
while( true)
{
// Вводим до появления ошибок или ввода неположительного значения
inttempKey, tempValue;
std::cin >> tempKey >> tempValue;
if( std::cin && tempKey > 0 )
// Помещаем пару ключ-значение в отображение
IntegerMapInsertKey( * pMap, tempKey, tempValue );
Else
break;
}
// Вводим интересующий ключ
std::cout << "Input interested key: " << std::endl;
intsearchKey;
std::cin >> searchKey;
if( std::cin )
{
// Если ключ имеется в отображении, печатаем соответствующее ему значение
if( IntegerMapHasKey( * pMap, searchKey ) )
std::cout << "Result: " << IntegerMapFind( * pMap, searchKey );
// Иначе, печатаем, что ключ отсутствует
Else
std::cout << "Error: Key is undefined.";
}
Else
// Ошибка ввода ключа
std::cout << "Error: Key is not a number.";
std::cout << std::endl;
// Освобождаем ресурсы объекта-отображения
IntegerMapDestroy( pMap );
}
Результат выполнения:
Дата добавления: 2016-01-29; просмотров: 610;