При установке cookie Вы устанавливаете необработанные cookie-данные и некоторые метаданные. Эти метаданные включают путь для того, где cookie допустим, время истечения срока cookie, и так далее.
Когда браузер выполнит запрос, что точно браузеры отправят с ним? Это отправит полный cookie со всеми "метаданными"? Или только фактические данные cookie, без метаданных?
Этот ответ имеет 20 vots сейчас, но он не предназначен как индоссамент std:: valarray
.
По моему опыту, время лучше потратить на установку и обучение использованию полноценной библиотеки математики, такой как Eigen . У Valarray меньше возможностей, чем у конкурентов, но он не более эффективен или особенно прост в использовании.
Если вам нужна лишь небольшая линейная алгебра, и вы не можете добавить что-либо в цепочку инструментов, то, возможно, valarray
подойдет. Но быть застрявшим, неспособным выразить математически правильное решение вашей проблемы, очень плохая позиция быть в. Математика беспощадна и непростительна. Используйте правильный инструмент для задания.
Стандартная библиотека предоставляет std:: valarray < double >
. std:: vector < >
, предложенный здесь несколькими другими, предназначен в качестве контейнера общего назначения для объектов. valarray
, менее известный, поскольку является более специализированным (не использующим «специализированный» в качестве термина C++), имеет несколько преимуществ:
округляется до ближайшей степени, равной двум, чтобы его можно было изменять, не перераспределяя каждый раз. (Можно изменить размер valarray
; Это все еще так же дорого, как realloc ()
.) Конечно, преимущество использования C заключается в том, что вам не нужно управлять памятью. Размеры могут находиться в стеке или в объекте-фрагменте.
std::valarray<double> matrix( row * col ); // no more, no less, than a matrix
matrix[ std::slice( 2, col, row ) ] = pi; // set third column to pi
matrix[ std::slice( 3*row, row, 1 ) ] = e; // set fourth row to e
-121--1551790- Кривая Пеано - заполняющий пространство фрактал, позволяющий равномерно покрывать 2-D область (или более высокомерную область) путем 1-D. При выполнении локальных операций с многомерным массивом сохранение данных массива и/или доступ к ним в порядке заполнения пространственных кривых может повысить когерентность кэша для всех уровней кэша.
-121--1307037-В последующих запросах не возвращается только значение файла cookie, остальные метаданные остаются на клиенте.
При определении файла cookie на сервере в ответе, содержащем имя, значение и другие метаданные файла cookie, создается заголовок Set-Cookie
. Несколько файлов cookie создадут несколько заголовков Set-Cookie
в ответе.
Когда браузер делает последующие запросы, он проверяет свою «базу данных» доступных файлов cookie, чтобы увидеть, какие файлы cookie подходят для запрашиваемого пути. Затем создается единственный заголовок Cookie
в запросе, который содержит только ряд пар имя/значение соответствующих cookie-файлов.
Это важно, чтобы держать жесткий контроль над количеством файлов cookie и размером данных, в противном случае вы можете обнаружить, что вес данных cookie, отправляемых для каждого запроса может быть сдерживающим для производительности. Это было бы намного хуже, если бы метаданные также возвращались вместе с файлами cookie.
Сервер устанавливает cookie с заголовком «Set-cookie». Это содержит метаданные (путь и срок действия), если указано. Клиент (браузер) отправляет только самого cookie в заголовке "cookie".
Firebug - это полезный инструмент для Firefox для просмотра всех этих заголовков. Подобные инструменты должны быть доступны для других браузеров.
Только данные файла cookie отправляются на сервер, другие метаданные для браузера выполнять некоторые действия, такие как истечение cookie
У пользователя агент повторно передает путь, домен, и атрибуты порта, если файл cookie был установлен в RFC2965 (через заголовок Set-cookie2
), и если атрибут был указан сервером. Запрос на выборки может содержать:
Cookie: $Version="1";
name="val"; $Path="/site"; $Domain=".example.com"; $Port="81";
name="val"; $Path="/site/dir"; $Domain=".example.com"; $Port="81"
Если файл cookie был указан с использованием оригинального Netscape заголовка Set-cookie
, атрибуты не будут переданы. Если для запроса необходимо несколько файлов cookie с тем же именем (но разными путями), все соответствующие файлы cookie будут поставлены. Пример запроса:
Cookie: name=val; name=val2
Полный спецификация здесь:
http://tools.ietf.org/html/rfc2965
Оригинальный Netscape Spec здесь: