Предполагая, что подпись вашей функции непреднамеренно неверна, вы имеете в виду что-то подобное?
#include <algorithm>
#include <iterator>
#include <string>
#include <vector>
std::vector<std::string> Convert(int count, const char **arr)
{
std::vector<std::string> vec;
vec.reserve(count);
std::copy(arr, arr+count, std::back_inserter(vec));
return vec;
}
int main()
{
const char *arr[3] = {"Blah", "Wibble", "Shrug"};
std::vector<std::string> vec = Convert(3, arr);
return 0;
}