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

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

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

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

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

по сабжу:

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

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

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

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

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

Ошибка: нет операции доступа к элементу - C++
#include<iostream> #include<iomanip> #include<fstream> #include<locale> using namespace std; struct PRICE { char...

Выдает ошибку "Неверный тип для индекса массива" - C++
Выдает вот такую ошибку: invalid types '<unresolved overloaded function type>' for array subscript Немогу понять в чем дело. Место...

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

C++
1
2
3
4
5
map<char*, double> map1;
map1["nullvalue"] = 2.34;
map1["firstvalue"] = 1.4;
 
cout << map1["firstvalue"] << endl;
somebdy
7 / 7 / 1
Регистрация: 30.04.2013
Сообщений: 25
26.03.2014, 20:37     Задание индекса для доступа к элементу массива в виде char * #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;
}
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
26.03.2014, 21:09     Задание индекса для доступа к элементу массива в виде char * #6
Таки да, вы правы.
Различие адресов начала массивов char, даже при том, что текст в них одинаков, размножает элементы карты, вместо того, чтоб относится к одному и тому же элементу карты, как ожидалось мною ранее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2014, 15:27     Задание индекса для доступа к элементу массива в виде char *
Еще ссылки по теме:

Есть ли способ доступа к элементу списка по индексу? - C++
Есть ли способ доступа к элементу списка по индексу?

Ошибка "неверный тип для индекса массива" при работе с двумерным массивом - C++
Возникла вот такая проблемы при выполнении работы: int step_right(int *a,int n,int m,int i,int j){ int flower = 0; if...

Поворот массива на 90 градусов (cannot convert form char to char*) - C++
Пытаюсь повернуть массив на 90 градусов. Понимаю что проблема в преобразовании данных, но не знаю как исправить( Может кто подсказать...

Написать функцию replace для массива char'ов - C++
Нужно написать функцию замены подстроки f на подстроку t в строке а: int replace(char a, const char f, const char t)f может быть равна...


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

Или воспользуйтесь поиском по форуму:
globo
0 / 0 / 0
Регистрация: 26.07.2009
Сообщений: 13
27.03.2014, 15:27  [ТС]     Задание индекса для доступа к элементу массива в виде char * #7
Благодарю за ответы. map - решение проблемы.
Yandex
Объявления
27.03.2014, 15:27     Задание индекса для доступа к элементу массива в виде char *
Ответ Создать тему
Опции темы

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