Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В Билдере есть вектор: ключ - значение? 
V
    Опции темы
freshAngel
  Дата 25.1.2009, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Привет.
В C++ Builder есть обычный вектор, хранящий в себе значения.
А можно сделать вектор, хранящий пару: ключ -> значение
И еще вопрос по теме. В C++ Builder есть хэш таблицы!?
PM MAIL   Вверх
Lazin
Дата 25.1.2009, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154



tr1::hash_map
std::map
PM MAIL Skype GTalk   Вверх
kin
Дата 25.1.2009, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 9.5.2008

Репутация: 1
Всего: 6



Цитата(freshAngel @  25.1.2009,  10:46 Найти цитируемый пост)
Привет.
В C++ Builder есть обычный вектор, хранящий в себе значения.
А можно сделать вектор, хранящий пару: ключ -> значение
И еще вопрос по теме. В C++ Builder есть хэш таблицы!? 

Привет!
C++ Builder, как любая уважающая себя среда разработки на языке програмирования С++, поддерживает стандартную библиотеку, так что std::vector, std::list, std::map и пр. прекрасно себя здесь ощущают. В часности std::map это и есть твой "...вектор, хранящий пару: ключ -> значение"


PM MAIL   Вверх
freshAngel
Дата 25.1.2009, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Спасибо.
А где можно почитать про методы map, list!?
Просто не получается прочитать данные из ассоциативного вектора
Код

#include <map>
using namespace std;

map<String,String> coolmap;

coolmap.insert(make_pair("MyKey", "MyValue"));
ShowMessage(coolmap[0].first);

PM MAIL   Вверх
Void
Дата 25.1.2009, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: нет
Всего: 173



Цитата(freshAngel @  25.1.2009,  14:09 Найти цитируемый пост)
coolmap.insert(make_pair("MyKey", "MyValue"));

Можно проще:
Код
coolmap["MyKey"] = "MyValue";

Цитата(freshAngel @  25.1.2009,  14:09 Найти цитируемый пост)
ShowMessage(coolmap[0].first);

std::map не поддерживает индексацию порядковым номером, только ключом, либо перебор итераторов.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
freshAngel
Дата 25.1.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Спасибки.
А как использовать итератор!?
Например, что - бы перебрать все ключи и их значения в массиве!?  smile 
PM MAIL   Вверх
Void
Дата 25.1.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: нет
Всего: 173



Код

typedef std::map<std::string, std::string> dict_t;
dict_t d;
...
for (dict_t::iterator i = d.begin(); i != d.end(); ++i)
{
    i->first; // ключ
    i->second; // значение
}



--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
freshAngel
Дата 25.1.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Код

#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <map>

using namespace std;

map<String,String> coolmap;

coolmap d; // ERROR HERE

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

coolmap.insert(make_pair("MyKey1", "MyValue1"));
coolmap.insert(make_pair("MyKey2", "MyValue2"));

for (coolmap::iterator i = d.begin(); i != d.end(); ++i)
{
    i->first; 
    i->second; 

}

}


Вроде все верно, но не работает.

coolmap d; - Здесь выдает ошибку
i,d - undefined symbol

Это сообщение отредактировал(а) freshAngel - 25.1.2009, 16:21
PM MAIL   Вверх
Lazin
Дата 25.1.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154



Цитата(freshAngel @  25.1.2009,  15:49 Найти цитируемый пост)
map<String,String> coolmap;

поменяй на 
Код

typedef map<String,String> coolmap;

PM MAIL Skype GTalk   Вверх
freshAngel
Дата 25.1.2009, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Цитата(Lazin @ 25.1.2009,  16:51)
Цитата(freshAngel @  25.1.2009,  15:49 Найти цитируемый пост)
map<String,String> coolmap;

поменяй на 
Код

typedef map<String,String> coolmap;

Спасибо.

А еще я добавлял элементы в coolmap, а цикл строил для размерности d smile
Нужно так.

Код

d["MyKey1"] = "MyValue1";
d["MyKey2"] = "MyValue2";



Всем спасибо за ответы!

Это сообщение отредактировал(а) freshAngel - 25.1.2009, 16:55
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.