как скопировать vector<char> в std::string
От: Аноним  
Дата: 18.01.10 11:23
Оценка:
собственно вопрос в теме.
string strresponse;
vector<char> response;

strresponse = &response[0];

почему-то не работает.
Re: как скопировать vector<char> в std::string
От: abrec Россия  
Дата: 18.01.10 11:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>собственно вопрос в теме.

А>string strresponse;
А>vector<char> response;

А>strresponse = &response[0];


А>почему-то не работает.


А '\0' в конце есть?
Re: как скопировать vector<char> в std::string
От: Vlad_SP  
Дата: 18.01.10 11:35
Оценка: +2
Здравствуйте, Аноним,
vector<char> response;

// тут что-то пишешь в вектор...

string strresponse(response.begin(), response.end());
// все!
Re: как скопировать vector<char> в std::string
От: XuMuK Россия  
Дата: 18.01.10 11:37
Оценка:
Здравствуйте, Аноним, Вы писали:

А>собственно вопрос в теме.

А>string strresponse;
А>vector<char> response;

strresponse.resize(response.size());
std::copy(response.begin(), response.end(), strresponse.begin());



А>strresponse = &response[0];

А>почему-то не работает.

это будет работать только если строка в векторе заканчивается '\0'.
Re: как скопировать vector<char> в std::string
От: Bell Россия  
Дата: 18.01.10 11:40
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>собственно вопрос в теме.

А>string strresponse;
А>vector<char> response;

А>strresponse = &response[0];


А>почему-то не работает.

Что значит не работает? В векторе есть терминирующий ноль?

А Вообще можно например так:
strresponse.assign(response.begin(), response.end());
//или
string strresponse(response.begin(), response.end());
Любите книгу — источник знаний (с) М.Горький
Re: как скопировать vector<char> в std::string
От: alexsy Россия  
Дата: 18.01.10 16:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>собственно вопрос в теме.

А>string strresponse;
А>vector<char> response;

А>strresponse = &response[0];


А>почему-то не работает.


А можно и Я свои 5 копеек вставлю ??

std::vector<char> vec;
std::string a( vec.begin(), vec.end() );
std::string b;
std::copy( vec.begin(), vec.end(), std::back_inserter( b ) );
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.