dimonchik2013: можно реализовать свой chardet, который более интеллектуальнее реализованного. Всё, что может определить живой человек, может определить и программа.
Ты неправильно используешь метасимвол *, потому что перепутал его со звёздочкой из шаблонов, которые не являются регулярными выражениями.
Звёздочка сама по себе ничего не значит, она относится к элементу, который находится слева от неё.
Главная твоя ошибка в том (ошибка новичка), что ты не описал весь алгоритм словесно до его реализации.
Новички обычно так думают "я вот сейчас начну код писать, и у меня сразу программа станет получаться, ведь я буду писать код, а программа заключается в коде".
Конкретнее опиши. Ты описал, какие у тебя входные данные, но в плане того, что именно нужно из них получить, - какая-то каша-малаша для телепатов. Вот прямо для этого csv-файла и напиши, что должно получиться из него.
dansheb: ну, обычные индексы элементов в векторе. То есть можно при сортировке использовать ссылки или указатели, а тут надо использовать индексы элементов. Потому что два массива и ты через ссылки или указатели на один ничего не сможешь сделать со вторым.
Валерий Рябошапко: Да элементарно это сделать. Сделай свой класс, который внешне имеет все признаки списка, но хранит данные на диске (буферизует чтение и запись).