Вызов к vector<T>::size()
возвраты значение типа std::vector<T>::size_type
, не интервал, неподписанный интервал или иначе.
Также обычно повторение по контейнеру в C++ сделано с помощью итераторы , как это.
std::vector<T>::iterator i = polygon.begin();
std::vector<T>::iterator end = polygon.end();
for(; i != end; i++){
sum += *i;
}
, Где T является типом данных, Вы храните в векторе.
Или использование различных итеративных алгоритмов (std::transform
, std::copy
, std::fill
, std::for_each
и так далее).
Читали ли вы в руководстве раздел о Распределенное кэширование с ehcache ?
Есть следующие главы:
Хорошим решением проблемы масштабирования кластера является концепция «партнерской репликации», когда данные реплицируются только на соседей каждого узла (как бы вы это ни определяли), а не на все узлы. Вы получаете аварийное переключение без проблем с масштабированием.
Насколько мне известно, ehcache этого не делает. Однако JBossCache это делает, и он также интегрируется с Hibernate так же, как и ehcache.
Полностью реплицированный кеш будет работать только при чтении вашего приложения -в основном. Реплицированный кеш нельзя масштабировать; передача обновлений другим узлам убьет вашу производительность. Вам нужен многораздельный кеш с резервными репликами. Разделенные кеши будут линейно масштабироваться даже для приложений с интенсивной записью.
Попробуйте Hazelcast ! это решение для транзакционного многораздельного кэширования Java с открытым исходным кодом (лицензия Apache). Он поставляется с плагином кеширования второго уровня спящего режима.
Несколько десятков? Без проблем. Демонстрацию 100 узлового кластера Hazelcast можно найти здесь .