result[i] += val[j] * vector[col[j]];
#pragma omp parallel private(i, j)
{
#pragma omp for
for (i = 0; i < N; i++)
{
for (j = RowIndex[i]; j < RowIndex[i + 1]; j++)
{
#pragma omp atomic
// lock result[i]
result[i] += val[j] * vector[col[j]];
// unlock
if (i != col[j])
{
#pragma omp atomic
result[col[j]] += val[j] * vector[i];
}
}
}
}
Не нужно подменять мышление эрудицией. Доскональное изучение вопроса редко приводит к пониманию основной сути.
"В программировании абстрактные типы данных обычно представляются в виде интерфейсов" - в C++ такого не наблюдаю
Если ты все еще настаиваешь, что эти статьи нужны, то укажи конкретную статью и конкретную цитату, которая даст понимание конкретной вещи, а именно: что "отсортированный контейнер" (англ. sorted container) означает "контейнер, который при вставке значений не располагает их в порядке вставки, а сортирует". Причем надо еще и понимать, откуда берется порядок сортировки для чисел, строк и т.д., если ты его не задавал.
ИМХО, тут нужно что-то вроде "Контейнеры бывают отсортированные (...), ... (...) и ... (...). Еще контейнеры делятся по ..."
...ИМХО, тут нужно что-то вроде "Контейнеры бывают отсортированные (...), ... (...) и ... (...). Еще контейнеры делятся по ..."
C++ Контейнеры
Библиотека контейнеров является универсальной коллекцией шаблонов классов и алгоритмов, позволяющих программистам легко реализовывать общие структуры данных, такие как очереди, списки и стеки. Существует три вида контейнеров: последовательные контейнеры, ассоциативные контейнеры, и неупорядоченные ассоциативные контейнеры, каждый из которых предназначен для поддержки различных наборов операций.
Контейнер управляет выделяемой для его элементов памятью и предоставляет функции-члены для доступа к ним, либо непосредственного, либо через итераторы (объекты, обладающие схожими с указателями свойствами).
Большинство контейнеров обладают по крайней мере несколькими общими функциями-членами и общей функциональностью. Выбор оптимального контейнера для конкретного случая зависит не только от предоставляемой функциональности, но и от его эффективности при различных рабочих нагрузках.
Ассоциативные контейнеры реализуют упорядоченные структуры данных с возможностью быстрого поиска
std::map —отсортированныйупорядоченный ассоциативный контейнер, который содержит пары ключ-значение с неповторяющимися ключами. Порядок ключей задаётся функцией сравнения Compare. Операции поиска, удаления и вставки имеют логарифмическую сложность. Данный тип, как правило, реализуется как красно-чёрное дерево.
3) устанавливается на машине БЕЗ интернета (к сожалению, бесплатный Visual C++ здесь не подошел)
не требовать свои IDE, фреймворки, библиотеки