Re: c++, как работать с контейнерами STL?
это бред, не привязанный к реальной задаче, от которой тут все зависит.
Если этот монстр оживет, считаться будет быстро
это бред и надежда на чудо. у тебя никогда не получится быстро забить гвоздь, если ты не умеешь пользоваться молотком. нет, чудеса, конечно, возможны. но запланировать их нельзя, они по определению не планируются (поэтому они и чудеса). а ты пытаешься запланировать чудодейственное исцеление молотком, не умея им пользоваться, то есть ты хочешь чуда в квадрате.
пунктом один ты меня озадачил, не скрою
что тебя озадачило? я тебе указал на все ошибки в твоем коде, в том числе и на главную.
монстр оживет, если ты все их исправишь. но лучше не надо.
вот код, который компилится, тебе осталось разобраться с особенностями multimap::operator[].
они сильно зависят от того, что конкретно тебе нужно.
code:#include string
#include vector
#include map int main
{ std::vector std::map std::string, std::map int, std::string a; std::string c ("string"); int k = 0; // std::map std::string, std::map int, std::string &v1 = a[k]; // std::map int, std::string &v2 = a[k][c]; a[k][c][k] = c; return 0;
}
что-то мне подсказывает, что здесь не оптимальное решение.
может такое сойдет
code: map pair string, int, vectorstring a[10];
a[0][make_pair("abc",42)].push_back("klm");
Можно переопределить operator, , убрав таким образом make_pair из этой записи.
code:
struct mymap : public map. { operator (stroka s, int n) {.} }
4. не пиши на си++, пожалуйста
Щас Бачан напишет нужный контейнер на C в три строчки. Дрочу F5, предвкушая.
не передергивай, я этого не говорил.
проблема автора, очевидно, в том, что он не знает плюсов, т.к. даже я нашел ему все ошибки.
не нужно писать на языке, которого не знаешь, вот и все, что я хочу сказать.
а как тогда узнавать языки? На самом деле пока не писал на языке, ты его не знаешь
спросить на форуме и послушать моего мудрого совета.
import Data.Vector
import Array main = do let a :: Array Int (Map (String,Int) (Vector String a = array (0,9) [(0,Map.singleton ("abc",42) $Vector.singleton "klm")] return
о перформансе мы тактично умолчим
я не помню, озвучивал ли я тут эту мысль или нет - возьми sqlite и не еби мозг.
а проблему "вставить в нужное место" пока решил добавлением пробелов в начало строки. тоже костыль, конечно.
Но такова структура мультимапа: он при вставке упорядочивает.
а если не писать на языке, его и не выучиь (как тут верно подметили).
Я же не коммерческий продукт пишу
Оставить комментарий
slonishka
1. в vector /./ a [10] ты создал десять своих ебанутых векторов2. ты забыл одну закрывающую треугольную скобку
3. у мультимапа слишком хитрый [] даже по меркам си++
4. не пиши на си++, пожалуйста
5. .
6. PROFIT!
ЗЫ: я компилятор си++!