The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Двухмерный вектор "
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "Двухмерный вектор " +/
Сообщение от jd (??), 26-Окт-07, 06:32 
>f.vector.cpp: In function ‘int main()’:
>f.vector.cpp:15: ошибка: в ‘main()::channel’ используется локальный тип ‘main()::channel’
>f.vector.cpp:15: ошибка:   при конкретизации ‘template<class _Alloc> class std::allocator’
>...

Имелось в виду что-то вроде:


#include <vector>
#include <string>
#include <iostream>

using namespace std;

struct channel
{ string name;
  int value;
  channel(const string &n, int v): name(n), value(v) {}
};

int main()
{ vector<channel> v;
  v.push_back(channel("PCM", 15));
  v.push_back(channel("VOL", 24));
  v.push_back(channel("MIC", 8));

  for(int i=0; i<3; i++)
    cout<<v[ i].name<<": "<<v[ i].value<<endl;

  return 0;
}

И оно прекрасно компиляется и работает.

А если уж использовать ассоциативный массив, то не multimap, а map, так как в первом возможно существование двух элементов с одним ключём (ключ у вас - это название канала), а это не ваш случай. Но одна из основных идей использования map - это обращение (поиск) к элементу по ключу. То есть для приведённого кода, что-то вроде ALL_MIX_DEV["PCM"] (для получения или установки соответствующего значения для канала PCM, например).

А вообще, лучше всего почитать Страуструпа, чтобы делать осознанный выбор. STL там довольно хорошо описан.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Двухмерный вектор , siegerstein, 25-Окт-07, 00:32  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру