Функция res() должна на вход принимать указатель на строку и возращать вектор с типом строки с размером длины передаваемой строки, а каждый элемент в векторе должен соответственно равен каждому символу строки.
Проблема: При запуске программа выдаёт следующую ошибку:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
using namespace std;
vector<string> res(string *p) {
vector<string> vres;
vres.reserve(p->size());
for (int i = 0; i < p->size();++i) {
vres.push_back(p[i]);
}
return vres;
}
int main(int argc, char* argv[])
{
string word = "Hello";
string * pword = &word;
vector<string>result = res(pword);
copy(result.begin(), result.end(), ostream_iterator<string>(cout, " "));
return 0;
}
sizeиlength- одно и то же? Илиsizeиcapacity? – Qwertiy May 07 '20 at 10:26vector<char>. Но все то, что умеетvector<char>, умеет иstring- просто нет никакого смысла в таком представлении... – Harry May 07 '20 at 10:27vres.push_back(string() + (*p)[i]);– Qwertiy May 07 '20 at 10:27vres.push_back(string() + (*p)[i]);помог – lakvak May 07 '20 at 10:30stringпо сути не сто иное как векторcharов. – Harry May 07 '20 at 10:36