Есть следующая задача: изначально мы не знаем размер массива, который нам надо обработать, необходимо написать функцию, которая бы работала с динамическим массивом и возвращала обработанный массив строк.
string fucntion(string* text[])
{
string* text_out=new string[];
/*
*do something
*/
return text_out;
}
Каким образом можно вернуть массив строк?
Странное смешение французского с нижегородским - массива C и строк C++.
Поскольку массив преобразуется в указатель на первый элемент - просто возвращайте указатель:
string* fucntion(string* text[])
{
int N = 20; // Количество элементов массива
string* text_out=new string[N];
/*
*do something
*/
return text_out;
}
Но смотрите, сколько неприятностей: нужно не забыть освободить потом память, при возврате вы не возвращаете количество элементов, а по указателю его вам не узнать. Стоят ли эти неприятности, чтоб ради них отказываться от вектора?
Куда проще так:
vector<string> fucntion(/* что там нужно */)
{
vector<string> array;
/*
*do something
*/
return array;
}
И никаких проблем!
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок