Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
globo
0 / 0 / 1
Регистрация: 26.07.2009
Сообщений: 14
#1

Задание индекса для доступа к элементу массива в виде char * - C++

26.03.2014, 20:01. Просмотров 349. Ответов 6
Метки нет (Все метки)

по сабжу:

C++
1
2
a["nullIndex"] = 2.3234;
a["firstIndex"] = 2.345e12;
Каким образом можно организовать такой доступ к элементам массива?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2014, 20:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Задание индекса для доступа к элементу массива в виде char * (C++):

Получение доступа к элементу массива не по индексу
Доброго времени суток дамы и господа. Возникла сложность с получением доступа к...

Не получается присвоить значение элементу массива указателей типа char *a[3]
В попытках разобраться с массивами, указателями, массивами указателей и т.п....

Свойство объекта в виде массива char заполняется только для одного объекта
Есть два свойства: одно - string, второе - массив char. Если начать заполнять...

Сложение / Вычитание / Умножение чисел записанных в виде массива char символов
доброго времени суток. такой вопрос, как мне сделать выше перечилненные...

Функция для нахождения индекса максимального элемента массива
Помогите написать функцию для нахождения индекса максимального элемента...

Рекурсивная функция для вычисления индекса максимального элемента массива
Написать рекурсивную функцию для вычисления индекса максимального элемента...

6
Wlk
90 / 90 / 48
Регистрация: 07.12.2011
Сообщений: 214
Завершенные тесты: 4
26.03.2014, 20:09 #2
Можно попробовать использовать карту (map), в качестве ключа будет char*, а в качестве значения double.
C++
1
2
#include <map>
map<char*, double> map1;
0
somebdy
7 / 7 / 3
Регистрация: 30.04.2013
Сообщений: 25
26.03.2014, 20:13 #3
С char* не прокатит, а вот с std::string да.
0
Wlk
90 / 90 / 48
Регистрация: 07.12.2011
Сообщений: 214
Завершенные тесты: 4
26.03.2014, 20:18 #4
По крайней мере вот это сработало.

C++
1
2
3
4
5
map<char*, double> map1;
map1["nullvalue"] = 2.34;
map1["firstvalue"] = 1.4;
 
cout << map1["firstvalue"] << endl;
0
somebdy
7 / 7 / 3
Регистрация: 30.04.2013
Сообщений: 25
26.03.2014, 20:37 #5
А так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <map>
 
using map_t = std::map<char *, double>;
 
void foo(map_t & arr) {
    char str[] = "foo";
 
    std::cout << arr[str] << std::endl;
}
 
int main() {
    map_t arr;
 
    arr["foo"] = 2.25;
 
    std::cout << arr["foo"] << std::endl;
 
    foo(arr);
 
    return 0;
}
0
Wlk
90 / 90 / 48
Регистрация: 07.12.2011
Сообщений: 214
Завершенные тесты: 4
26.03.2014, 21:09 #6
Таки да, вы правы.
Различие адресов начала массивов char, даже при том, что текст в них одинаков, размножает элементы карты, вместо того, чтоб относится к одному и тому же элементу карты, как ожидалось мною ранее.
0
globo
0 / 0 / 1
Регистрация: 26.07.2009
Сообщений: 14
27.03.2014, 15:27  [ТС] #7
Благодарю за ответы. map - решение проблемы.
0
27.03.2014, 15:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2014, 15:27
Привет! Вот еще темы с решениями:

Введение в рекурсию. Заполнить массив типа char в виде десятичного числа, принимаемого в виде аргумента
Пытался написать функцию, которая заполняет массив типа char в виде десятичного...

Написать рекурсивную функцию для получения индекса максимального массива из 5 элементов
Написать рекурсивную функцию для получения индекса максимального массива из 5...

В чем отличие двумерного массива типа char от массива указателей на char?
В чем отличие двумерного массива типа char и массива указателей на char ?

Что быстрее? Обращение к элементу массива или к элементу структуры?
Обращение к элементу массива или к элементу структуры? Экспериментирую с кодом...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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