Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для OldFedor
7486 / 4150 / 474
Регистрация: 25.08.2012
Сообщений: 11,530
Записей в блоге: 11

Оптимальное копирование массивов

30.09.2012, 21:03. Показов 2422. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В 6-ке для ускорения можно было копировать области памяти.
Вопрос - а в VB 2010 это возможно?
Благодарствую всем, кто откликнется.

Добавлено через 12 часов 9 минут
Я имею ввиду аналог механизма CopyMemory.
Кто пробовал, отзовитесь!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2012, 21:03
Ответы с готовыми решениями:

Копирование массивов
Для моего тетриса, с которым я уже замучался мне нужно скопировать значения из массива 3х3, который задает фигуру, в массив, который задает...

Копирование массивов
Необходимо в один момент скопировать данные из одного массива в другой. для измененение данных в втором, чтобы в первом данные не...

Копирование массивов
Есть функция расширения массива обьясните пожалуйста почему если выбросить некоторые операции она все равно работает.void ExpendArrPtr...

2
 Аватар для KingManiya
203 / 203 / 13
Регистрация: 14.10.2011
Сообщений: 227
01.10.2012, 18:09
VB.NET
1
2
3
Dim b(500) As Integer
Dim a() As Integer
Array.Copy(b, a, b.Count)
Не знаю, как точно работает, но думаю стандартную копировалку массивов делали не зря.
1
 Аватар для OldFedor
7486 / 4150 / 474
Регистрация: 25.08.2012
Сообщений: 11,530
Записей в блоге: 11
02.10.2012, 16:27  [ТС]
Благодарствую, KingManiya!
Все так.
Но есть ли это низкоуровневое копирование? То бишь быстрое. В этом и цель.
И вот, что не пробовал - размерность 2 и более. Нет ли пересортицы.
Копируется, должно быть, как и положено (в 6-ке) по столбцам.
Сейчас проверю.

Добавлено через 1 час 29 минут
Проверил. Результат ниже.
VB.NET
1
2
3
4
5
6
7
Dim a(10, 10), b(10, 10) As Object
For j = 1 To 10
For i = 1 To 10
   a(i, j) = i & j
Next i
Next j
Array.Copy(a, b, 100)
Результат
а()
"11","21","31","41","51","61","71","81", "91","101"
"12","22","32","42","52","62","72","82", "92","102"
"13","23","33","43","53","63","73","83", "93","103"
"14","24","34","44","54","64","74","84", "94","104"
"15","25","35","45","55","65","75","85", "95","105"
"16","26","36","46","56","66","76","86", "96","106"
"17","27","37","47","57","67","77","87", "97","107"
"18","28","38","48","58","68","78","88", "98","108"
"19","29","39","49","59","69","79","89", "99","109"
"110","210","310","410","510","610","710 ","810","910","1010"
b()
"11","21","31","41","51","61","71","81"# ERROR 448##ERROR 448#
"12","22","32","42","52","62","72","82"# ERROR 448##ERROR 448#
"13","23","33","43","53","63","73","83"# ERROR 448##ERROR 448#
"14","24","34","44","54","64","74","84"# ERROR 448##ERROR 448#
"15","25","35","45","55","65","75","85"# ERROR 448##ERROR 448#
"16","26","36","46","56","66","76","86"# ERROR 448##ERROR 448#
"17","27","37","47","57","67","77","87"# ERROR 448##ERROR 448#
"18","28","38","48","58","68","78","88"# ERROR 448##ERROR 448#
"19","29","39","49","59","69","79","89"# ERROR 448##ERROR 448#
"110","210","310","410","510","610","710 ","810"#ERROR 448##ERROR 448#
a и b - скопировано из файла .txt
Ваше мнение, где косяк?

Добавлено через 21 минуту
448 - Именованный аргумент не найден
Обычная запись в файл.
VB.NET
1
2
3
4
5
Call FileOpen(1, PathTmp & "b.txt", OpenMode.Output)
For j = 1 To 10
   WriteLine(1, b(0, j), b(1, j), b(2, j), b(3, j), b(4, j), b(5, j), b(6, j), b(7, j), b(8, j), b(9, j), b(10, j))
Next j
Call FileClose(1)
Добавлено через 17 часов 56 минут
Сегодня нашел ошибку.
Совсем забыл, что против 6-ки индексация начинается с нуля.
Т.е. копировать надо не 100, а 121 элемент.
Все работает.

Теперь о времени копирования.
Похоже Array.Copy и CopyMemory(6-ка) делают одно и тоже.
Я, во всяком случае, разницы во времени копирования не обнаружил (массивы от 1000 и до 1000000 элементов).

Тема закрыта.

Всем спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.10.2012, 16:27
Помогаю со студенческими работами здесь

Копирование массивов
Помогите решить проблемку. Нашел в нете функцию memcpy(), которая должна по идее копировать один массив в другой Вот мой код cout...

Копирование массивов
Реализуйте функцию копирования элементов copy_n из массива источника типа U* в целевой массив типа T*, где T и U произвольные типы, для...

Копирование массивов
Задача такая. Есть Object object. На самом деле в нем лежит массив, причем может быть как массив ссылочных типов, так и примитивов. Нужно...

Копирование массивов
Уважаемые форумчане помогите решить задачку про массивы. У меня не получается... Суть задачи: Есть два массива: a(10) b(10); ...

Копирование массивов char
Вот пример из книги Дейтела: #include <iostream> using std::cout; using std::endl; #include <cstring> using std::strcpy; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru