Присоединение символа буферизует к вектору <символ> в STL

Сессии Django сохраняют свой ключ в cookie. По крайней мере, его промежуточное программное обеспечение извлекает его как это:

from django.conf import settings
session_key = request.COOKIES[settings.SESSION_COOKIE_NAME]
19
задан Alexis Wilke 30 October 2015 в 09:32
поделиться

3 ответа

Когда у вас есть vector , вам, вероятно, лучше всего вызвать vector :: insert ] метод:

std::vector<char> vec;

const char* values="values";
const char* end = values + strlen( values );

vec.insert( vec.end(), values, end );

Делегирование его вектору предпочтительнее, чем использование back_inserter , потому что вектор может тогда выбрать свой окончательный размер. back_inserter будет только push_back , что может вызвать дополнительные перераспределения.

37
ответ дан 30 November 2019 в 03:08
поделиться

Я не компилировал его, но должно получиться примерно так:

const char string1[] = "a string";
std::vector<char> vData;
vData.insert(vData.end(), string1, string1+strlen(string1));
1
ответ дан 30 November 2019 в 03:08
поделиться

Я думаю, что правильным способом было бы

vec.insert(vec.end(),buf,buf+length);

или

std::copy(buf,buf+length,std::back_inserter(vec));

Изменить: Я изменил порядок двух примеров, так что это не значит, что комментаторы ошибаются, это просто я; -)

5
ответ дан 30 November 2019 в 03:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: