Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для vbloodv
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314

Не получается использовать std::copy как memcpy?

28.03.2014, 14:20. Показов 2427. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Получил задание переписать свою код:
Кликните здесь для просмотра всего текста
Поля x, y указывают координаты, куда должен быть помещен файл - кадр,
а width, height ширину и высоту области, которая выделена в атласе под файл - кадр.
Важно, что ширина и высота загружаемого файла могут быть больше, чем width, height !!!
Это связано с тем, что при создании атласа может быть применено масштабирование.
Поэтому необходимо уметь загружать файл - кадр на атлас с учетом масштаба. */


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    int src_pitch = ...; 
    int dst_pitch = ...;
    int src_w, src_h, dst_w, dst_h; // все int естественно проинициализированны
 
    DWORD* src = hge_->Texture_Lock(src_tex, true, 0, 0, src_w, src_h);
    DWORD* dst = hge_->Texture_Lock(atlas_index_, false, x, y, dst_width, dst_height);
 
    if (src_w <= dst_width)
    {
        for (int i = 0; i < src_h; ++i)
        {
            int dst_stride = i*dst_pitch;
            int src_stride = i*src_pitch;
            size_t size = sizeof(DWORD)*src_w;
 
            memcpy(&dst[dst_stride], &src[src_stride], size);
            //std::copy(...);
        }
    }
можно ли её использовать таким образом, гуглил по запросу how use std::copy like memcpy народ ненавязчиво предлагает использовать std::back_inserter; возможно есть более красивый способ такой моей реализации?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.03.2014, 14:20
Ответы с готовыми решениями:

Std::begin() ,std::end(),std::copy
...// int main() { std::vector&lt;double&gt; data;//Работает cout &lt;&lt; std::begin(data); double *data=new double; ...

Стандартный поток и STL (std::copy to std::cout)
#include &lt;iostream&gt; #include &lt;sstream&gt; #include &lt;algorithm&gt; #include &lt;functional&gt; #include &lt;string&gt; using namespace std; ...

Как можно еще использовать std::placeholders вне в связки с std::bind?
Добрый день! Как можно еще использовать std::placeholders вне в связки с std::bind?

3
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
28.03.2014, 16:54
Лучший ответ Сообщение было отмечено vbloodv как решение

Решение

C++
1
2
3
std::copy(dst + dst_stride, dst + dst_stride + src_w, src + src_stride);
// или C++11
std::copy_n(dst + dst_stride, src_w, src + src_stride);
1
 Аватар для vbloodv
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
28.03.2014, 17:02  [ТС]
Кликните здесь для просмотра всего текста
Error 1 error C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 2132 1 particles_wrapper

во всех вариантах пишет ошибку

Не по теме:

P.S. компилятор VS2013

0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
29.03.2014, 03:37
Цитата Сообщение от vbloodv Посмотреть сообщение
во всех вариантах пишет ошибку
Цитата Сообщение от vbloodv Посмотреть сообщение
o disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation...
...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2014, 03:37
Помогаю со студенческими работами здесь

Std::copy как скопировать часть строки массива byte?
Вот из этой строки: BYTE pbHash; Нужно скопировать содержимое с 0й по 15ю ячейку, в эту строку: BYTE bAesKey; Так будет? ...

std::copy
typedef std::list&lt;size_t&gt; Path; Path::iterator _it; Path path; std::copy( _it, path.end(), std::ostream_iterator&lt;size_t&gt;( std::cout,...

Ошибка в std::copy не ясна
здравствуйте, есть следующий код, в котором возникает ошибка во время выполнения: std::string array1 = { &quot;hello&quot;,...

Использовать using namespace std; или каждый раз прописывать std:: . ?
Как безопаснее и рациональнее поступать? Как в больших проектах поступают на этот счет?

Что использовать, std::cout или просто using namespace std?
Приветствую! Сейчас учу С++, постигаю азы так сказать. В арсенале две книги - Джефф Кент, &quot;Основы программирования &quot; и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru