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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sandric
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 6
#1

добавление в контейнер без указания типов данных? - C++

09.05.2010, 22:35. Просмотров 515. Ответов 4
Метки нет (Все метки)

Привет, у меня проблема. Сразу перейду к коду:

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
template <class structType>
class CMyExperimentator
{
 
private:
 
    structType myStruct;
 
 
    vector<double> expRes;
 
    int struct_size;
 
    int my_random(int _max)
    {
        return (rand() % _max) + 1;
    }
 
    virtual inline float *getNode(const char *c_val)
    {
        return &myStruct[c_val];
    }
 
    ....
 
public:
 
    CMyExperimentator(int size = 100):struct_size(size)
    {
 
        float *node;
        srand(time(NULL));
        for(int i = 0; i < struct_size; i++)
        {
              
              float j=my_random(100);
 
              string val;
 
              val = i;
 
              //node = getNode(val.c_str());
              //*node = j;
              myStruct.insert(pair<val.c_str(), j>());   //вот тут у меня проблема.
        }
    }
 
    ...
 
};
 
 
 
struct eqstr{
      bool operator()(const char* s1, const char* s2) const {
        return strcmp(s1,s2)==0;
      }
};
 
int main()
{
 
    CMyExperimentator<hash_map<const char*, float, hash<const char*>, eqstr> > *mySheldon = new CMyExperimentator<hash_map<const char*, float, hash<const char*>, eqstr> >();
 
    //CMyExperimentator<map<const char*, float> > *mySheldon = new CMyExperimentator<map<const char*, float> >();
 
    return 0;
}
Я писал класс, который вычисляет число тактов для доступа к переменной для разных типов контейнеров. Все работало через простой доступ по индексу для хеш-таблицы, но для мапа у меня во все ячейки писало одно число, и я так понимаю, нужно юзать insert?
Я конечно могбі передавать шаблоном отдельно тип контейнера и типы для его шаблона, но тогда проблема в разности количества параметров шаблона для разных контейнеров - для хеш таблицы 4, а для мапа - только 2.

Вопщим понимаю, что вопрос глупый, кто знает, отпишитесь пжлст.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2010, 22:35     добавление в контейнер без указания типов данных?
Посмотрите здесь:

Статический контейнер для разных типов - C++
Доброго здоровица. Как объявить контейнер для хранении различных типов? Правилен ли такой метод? template &lt;class T&gt; class...

Цикл for без указания шага - C++
Что будет делать цикл for, если не давать ему шаг? Объясните, пожалуйста. Пример кода: for (int i = 1; i &lt; n;) if (arr &lt;= arr)...

Динамический массив без явного указания размера - C++
Самый праздный вопрос, наверное. И, вроде бы, я даже знаю ответ, но все-таки сомневаюсь. В С++ нельзя работать с динамическими...

Передать в функцию массив без указания его размера - C++
Вопрос . какой массив мы можем передавать в функцию без указания элемента ?

Как считать матрицу из файла без указания размерности? - C++
Как считать матрицу из файла без указания размерности?

Как сделать ввод матрицы из файла без указания размера - C++
Я сделал ввод матрицы из файла с указанием ее размера(массива),а как сделать ввод матрицы из файла без указания размера (строк и столбцов)....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
09.05.2010, 22:44     добавление в контейнер без указания типов данных? #2
C++
1
myStruct.insert(pair<const char*, float>(val.c_str(), j));
Не ?
sandric
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 6
09.05.2010, 22:53  [ТС]     добавление в контейнер без указания типов данных? #3
1
myStruct.insert(pair<const char*, float>(val.c_str(), j));
Не ?
А как я смогу узнать типы const char* и float, они же задаються в шаблоне?
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
09.05.2010, 23:01     добавление в контейнер без указания типов данных? #4
Тогда
C++
1
myStruct.insert(pair<structType::key_type, structType::mapped_type>(val.c_str(), j))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2010, 23:08     добавление в контейнер без указания типов данных?
Еще ссылки по теме:

Многомерный символьный(строковый) массив без явного указания разрядности - C++
В общем нужно прям в коде создать массив, к примеру: char Mmas=&quot;Первая строка. Вторая строка. Третья строка.&quot;; (тут компилятор...

чтение из файла и добавление в контейнер - C++
std::ofstream out; out.open(&quot;FilegRANDCHILED.dat&quot;, std::ios::binary | std::ios::trunc); if(!out) { ...

Как отсортирвоать контейнер, если его тип определяется по ходу выполнения программы? (динамическая идентификация типов) - C++
собсно #include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include &lt;vector&gt; #include &lt;list&gt; #include &lt;algorithm&gt; #include &lt;cxxabi.h&gt; ...

Добавление значения в контейнер вектор, находящийся в map - C++
Возникла проблема: есть файл std формата: Миша 5 5 2 3 Влад 0 3 3 4 и т.д. Из него считываются данные в map &lt;string,vector&gt;. Нужно...

Создать экземпляр класса без явного указания членов класса - C++
Если у меня есть два конструктора, один из которых по умолчанию, а второй явный. Я почему-то не могу создать экземпляр класса без явного...

Ввод данных в контейнер set - C++
Здравствуйте! В первое множество элементы вводятся нормально, но вот во второе множество кладется только последнее значение из первого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sandric
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 6
09.05.2010, 23:08  [ТС]     добавление в контейнер без указания типов данных? #5
Пасибо, как раз что я искал, поставил те +).
Yandex
Объявления
09.05.2010, 23:08     добавление в контейнер без указания типов данных?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru