преобразовать вектор строк / двойников в массивы - PullRequest
1 голос
/ 03 марта 2009

Я использую матричную библиотеку. Его функции принимают параметры в стиле c, например:

    #include<matheval.h>

    char * evaluator_evaluate(void * evaluator, int count, char **names, double *values);

В моем случае я хочу преобразовать std :: vector имен и std :: vector значений в char ** и double *

Кроме того, каждое имя соответствует уникальному значению, и могут быть повторения. Каков наилучший способ организовать имена и значения элегантно с точки зрения структур данных? Сейчас я использую векторы, и оба содержат повторения.

Редактировать Помните, что порядок имен и значений имеет значение и должен совпадать.

Спасибо

1 Ответ

1 голос
/ 03 марта 2009

Внутренне стандарт требует, чтобы vector<> было эквивалентно массиву. Вы можете взять адрес vector[0], и результирующий указатель будет указывать на непрерывную область памяти, где хранятся данные, в том же порядке, что и вектор. Этот указатель действителен до тех пор, пока vector<> не будет изменен.

Для std::string значений (или любого другого объекта в этом отношении), однако, вы получите только массив string объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...