Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/40: Рейтинг темы: голосов - 40, средняя оценка - 4.83
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21287 / 8312 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30

Можно ли для стд::вектор'а взять адрес и-го элемента?

27.11.2014, 19:09. Показов 9168. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим, есть код на Си:

C
int a[10000];
 
__builtin_prefetch (&a[1000]);
/* тут идёт обработка первых 1000 элементов массива [0 - 999] */
 
__builtin_prefetch (&a[2000]);
/* тут идёт обработка первых 1000 элементов массива [1000 - 1999] */
 
/* и так далее */
Что тут происходит? __builtin_prefetch в данном случае - это встроенная конструкция языка GNU C. Но её можно написать и самому, это непринципиально. __builtin_prefetch специальными командами процессора обращается к данным в памяти, реально не читая никаких значений. Делается это для того, чтобы данные из памяти попали в кэш. В тот момент, пока идёт обработка первых 1000 элементов массива, подсистема памяти (параллельно) перекачивает данные из памяти в кэш. И когда мы начнём обработку вторых 1000 элементов, мы уже не будем терять время на чтение данных из памяти. Параллельно вызываем подкачку следующего блока и т.п. Тут всё хорошо

Теперь берём код на Си::

C++
std::vector<int> a (10000);
Есть какая-то возможность получить адрес (но не ссылку, как это делает метод at) нужного нам элемента массива? Или внутри себя массив данных может быть не сплошным, а потому тут полная инкапсуляция и возможности предподкачки попросту нет?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2014, 19:09
Ответы с готовыми решениями:

Реально ли получить из стд::вектора Сишный массив?
Или для этого придётся поэлементно копировать и смысл теряется? Я понимаю, что указатель на память выделяемую вектором спрятан где-то...

как получить адрес элемента вектора посредством g++?
#include &lt;vector&gt; #include &lt;iostream&gt; using namespace std; int main(){ return 0; vector&lt;int&gt; v; v.push_back(2); ...

Взять адрес базы данных для редактирования пути
Доброе время суток. Честно признаюсь в том вопросе что пишу полный ноль и нужна помощь Есть задача создать сайт по военно патриотическому...

43
Evg
29.11.2014, 16:16  [ТС]
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от IGPIGP Посмотреть сообщение
Много медленнее рассчётного времени
Нашёл, чем удивить :)

0
 Аватар для taras atavin
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
29.11.2014, 16:32
Цитата Сообщение от Evg Посмотреть сообщение
Нашёл, чем удивить
Кто то утверждал, что там большой кеш и поэтому скорость счёта не падает на больших массивах.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21287 / 8312 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
29.11.2014, 17:10  [ТС]
Интересно, кто же такое утверждал. Может кто-то просто читать не умеет?
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
30.11.2014, 12:01
Вот написал и не знаю что с этим делать...
Гусары! taras atavin, Вас особенно, прошу воздержаться от предположений о том, что с этим следует сделать, тотчас и немедля.
Словом вот:
Вложения
Тип файла: zip cpp.zip (2.0 Кб, 7 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.11.2014, 12:01

дан вектор А (N). написать программу нахождения минимального элемента вектора и его индекса. если индекс элемента парный, то часть вектора перед миним
дан вектор А (N). написать программу нахождения минимального элемента вектора и его индекса. если индекс элемента парный, то часть вектора...

Где можно взять ftp-компонент, для того чтобы можно было закачивать со своего скрипта на фтп-сервак файлы?
Народ подскажите где можно взять ftp-компонент, для того чтобы можно было закачивать со своего скрипта на фтп-сервак файлы.

Произведение наименьшего элемента вектора Х и наибольшего элемента вектора Y.
Произведение наименьшего элемента вектора Х и наибольшего элемента вектора Y. размер векторов x и y одинаков и равен n. Прошу, помогите!

Произведение наименьшего элемента вектора Х и наибольшего элемента вектора Y
Произведение наименьшего элемента вектора Х и наибольшего элемента вектора Y. Добавлено через 26 минут Размер векторов одинаков и...

Заменить минимальное значение элемента вектора С размерности p на значение первого положительного элемента этого же вектора
Доброго всем здравия! Собственно задачка следующего порядка: &quot;Заменить минимальное значение элемента вектора С размерности p на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
44
Ответ Создать тему
Новые блоги и статьи
BitTorrent (версия 4.3.9) и Меню Настройки
russiannick 15.11.2026
В меню Настройки можно отключить автоматическое обновление программы. Карта этого меню приложена ниже. Нужный пункт выделен красным. Сервис Настройки Поведение
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru