Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2013, 13:10   #1
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию скорость обращения к строке (массив)

Если у нас есть массив строк и строка:
A:array of string;
S:string;
то равносильны ли обращения к ним:
D:=A[0] и D:=S ?
т.е. производятся ли какие-нибудь дополнительные операции
для обращения к элементу массива?

практический смысл вопроса:
Допустим необходимо сравнить один массив с другим,
и мы сравниваем одну строку первого массива со всеми строками второго массива

Имеет ли смысл строку из первого массива предварительно запомнить в переменную:
S:=A1[0];
for i:=0 to 1000000 do if S = A2[i] then ...

или же можно обращаться напрямую:
for i:=0 to 1000000 do if A1[0] = A2[i] then ... ?
xrob вне форума Ответить с цитированием
Старый 30.08.2013, 13:30   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Как вам удобно так и делайте. В случае "через переменную", то в переменную попадает указатель на строку в массиве(если после этого текст не меняется), так что разницы особой не будет.
Человек_Борща вне форума Ответить с цитированием
Старый 30.08.2013, 13:31   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Проверить слабо сделав в цикле миллионнов 100 сравнений одним способом и то же самое вторым, сравнить время и вопрос на форуме не задавать?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив A(n,m). Найти количество элементов в каждой строке, меньшего диагонального в этой строке. Proskurina Помощь студентам 5 03.03.2013 20:41
Найти самое длинное слово в строке (массив) bot.bat Помощь студентам 2 05.11.2011 00:40
вывести массив целых чисел в файле по одному в строке newstudent777 Паскаль, Turbo Pascal, PascalABC.NET 12 22.09.2011 22:17
Нужно удалить указатель на массив - на строке с delete вылетает Debug Error. ImmortalAlexSan Общие вопросы C/C++ 18 07.06.2011 17:49
Скорость рисования и остальная скорость ZotaC Gamedev - cоздание игр: Unity, OpenGL, DirectX 121 13.11.2010 22:51