Форум программистов, компьютерный форум CyberForum.ru

Проверка орфографии - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выбор кода для компиляции на основании сравнения параметров шаблона http://www.cyberforum.ru/cpp-beginners/thread339331.html
Здравствуйте. Помогите, пожалуйста, разобраться со следующим вопросом. Необходимо выбирать компилируемый код в зависимости от какого-либо условия. Для примера рассмотрим следующую функцию: template <int p> int MyFunc() { #if (p < 0) return -1; #elif (p > 0) return 1; #else
C++ int/double переводим в строку (string) Добрый день. помогите пожалуйста перевести число int и double в строку string (ну или char*) преобразование из строки в число (функциями atoi и atof) прочитал в http://www.cyberforum.ru/cpp-beginners/thread338915.html а вот обратное действие не могу придумать я щаз нашел способ тока так: std::string timeS = ""; char temp ; http://www.cyberforum.ru/cpp-beginners/thread339291.html
C++ Что означает сточка ::CoInitialize(NULL); ?
Привет, совсем небольшой вопрос, буду признателен за ответ: (я начинающий в C++, и пытаюсь разобраться в языке на основе рабочих примеров кода. Этот кусок взят из кода, создающего экселевский файл) Вопрос: Что означает сточка ::CoInitialize(NULL); ? //часть кода: int main()
Братцы! Либа NTP-сервера. C++
Здравствуйте! Проблема в следующем. Скачал c оф сайта ntp-4.2.6p3, написано на "с" собрал в VS 2008. Получил следующие файлы: ntpd.lib, ntpd.exe, ntpd.idb, ntpd.exp но где взять *.h чтобы подключить либу в проект ума не приложу. нашел ntpd.h в исходниках, подключил, и естесно "астапа понесло")) не найдены инклуды.., неужель подключать всю пачку? зачем тогда либа?? Давайте вместе подумаем и будет...
C++ Создание главного меню для игры.Помощь! http://www.cyberforum.ru/cpp-beginners/thread339251.html
Народ! Мне тут задали на практике в универе сделать PacMan. С чего начать вообще не знаю =( Решил с меню. Не могли бы вы показать примеры, только такие, чтоб всё было не в одной строчке, а по середине. Желательно с пояснениями (ну я чайник) Меню должно быть примерно такое: ========== =Новая игра = = Выход = ==========
C++ Плагин для C++ редактора в VS 2010 Привет, подскажите, пожалуйста плагин для VS 2010, такой чтобы автоматом разделял инструкции пробелами, так же как это организованно для C#. Пример cout<<"Hello world"; => cout << "Hello world" ; подробнее

Показать сообщение отдельно
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
05.08.2011, 20:29     Проверка орфографии
Gepar, map - стандартный ассоциативный контейнер. Вот посмотрите:

Для реализации словаря нужно использовать ассоциативный контейнер map. Элементами контейнера являются пары слов: английское слово является ключом, русское слово — значением. Для этого удобно использовать стандартную структуру pair с полями-строками: поле first является ключом, а поле second — значением. Посмотрите простой пример, который проясняет, как это делается (листинг 11.22).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Листинг 11.22. Использование ассоциативного контейнера map
#include <iostream>
#include <locale>
#include <string>
#include <algorithm>
#include <map>
#include <conio.h>
using namespace std;
typedef pair <wstring, wstring> word;               // карточка слова
void print(const word &t)                           // вывод карточки
{   wcout << t.first <<-<< t.second << endl; }
int main()
{   map <wstring, wstring> Dictionary;              // словарь
    wcout.imbue(locale("rus_rus.866"));             // для вывода русских 
// вставка в словарь
    Dictionary.insert(word(L"word",L"слово"));
    Dictionary.insert(word(L"path",L"путь, маршрут"));
    Dictionary.insert(word(L"computer",L"компьютер"));
// вывод словаря на экран
    for_each(Dictionary.begin(), Dictionary.end(), ptr_fun(print));
    cout << endl << endl;
// замена значения – русского слова
    Dictionary[L"computer"] = L"вычислительная машина";
    for_each(Dictionary.begin(), Dictionary.end(), ptr_fun(print));
    cout << endl << endl;
// получение русского слова 
    wstring s = Dictionary[L"word"];
    wcout << Dictionary[L"path"] << ';' << s << endl;
// вставка в словарь 
    word w = make_pair(L"accumulate", L"накапливать");
    Dictionary.insert(w);
    Dictionary[L"access"] = L"доступ";              
    for_each(Dictionary.begin(), Dictionary.end(), ptr_fun(print));
    cout << endl << endl;
    map <wstring, wstring> D;                       // новый словарь
// вставка в словарь
    D[L"account"] = L"учетная запись";
    D[L"accumulate"] = L"накапливать";
    D[L"path"] = L"маршрут";
    Dictionary.insert(D.begin(), D.end()); // объединение словарей
    for_each(Dictionary.begin(), Dictionary.end(), ptr_fun(print));
    cout << endl << endl;
    getch();
    return 0;
}
В этой программе использованы широкие строки и широкие потоки только для того, чтобы не иметь проблем с выводом русских слов-констант в консольное окно. Вывод словаря выполняет алгоритм for_each(), которому для этого передается функция print(). Вставка в словарь Dictionary выполняется методом insert():
C++
1
Dictionary.insert(word(L"computer",L"компьютер"));
Естественно, вместо явного задания констант можно добавлять в контейнер переменную типа word
C++
1
2
word w = make_pair(L"accumulate", L"накапливать");
Dictionary.insert(w);
Мы сконструировали пару из констант, но ничто не мешает нам ввести значения полей пары из файла.
Контейнер является ассоциативным массивом (см. раздел «Доступ к элементам контейнера» в гл. 3), поэтому оператор
C++
1
Dictionary[L"computer"] = L"вычислительная машина";
осуществляет замену значения, связанного с ключом «computer». Если ключ в словаре отсутствует, то такой оператор осуществляет запись в словарь нового значения, связанного с данным ключом. Именно так добавлялись слова во второй словарь D. Затем весь словарь D был добавлен в словарь Dictionary:
C++
1
Dictionary.insert(D.begin(), D.end());
Если слово уже присутствует в словаре Dictionary, то такое же слово из словаря D в словарь Dictionary не попадает (например, «accumulate», «path»). Если требуется, чтобы слова с одинаковыми ключами попадали в словарь, нужно просто заменить map на multimap.
Использование очереди, стека и приоритетной очереди не представляет сложностей. Однако нужно помнить, что адаптеры контейнеров не обеспечивают последовательный доступ с помощью итераторов. Это не позволяет просмотреть контейнер непосредственно, что иногда создает сложности.
 
Текущее время: 21:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru