Как отправить вектор строки в скомпилированные библиотеки MATLAB, используя mwArray?

Страница в класс mwArray описывает конструктор для создания ячейки mwArray массива строк как:
mwArray(mwSize num_strings, const char** str), У меня есть вектор строки, который был динамически заполнен. Я преобразовал vector<string> в char** и пытается сделать mwArray с этими данными. Тем не менее, подпись конструктора имеет const char**, поэтому он не может конвертировать char** в const char**

Как еще вектор строки может быть установлен в ячейку mwArray и отправлен в библиотеки MATLAB?

0

Решение

Вы можете конвертировать вектор в const char **. Вот одна из таких функций.

const char** convert(vector< string > &v)
{
int kk;

const char** ppChar = new const char *[v.size()];

for (kk = 0; kk < v.size(); kk++)
{
ppChar[kk] = const_cast< char* >(v[kk].c_str());
}

return ppChar;
}

чтобы проверить это:

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

using namespace std;

int main()
{
int k;

vector< string > v;

v.push_back("This is string");
v.push_back("Another string a bit longer");
v.push_back("my string");

const char** AA = convert(v);

for (k = 0; k < v.size(); k++)
{
cout << AA[k] << endl;
}

return 0;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]