fxsaber: Наверное, не многие так делают, поэтому сюдаСам пользуюсь вторым вариантом, когда нужно что-нибудь распарсить. Наверное, и работает быстрее, не проверял.
Второй вариант не только лучше, но и корректнее. Первый вариант ненадежный. В нем fatal error на fatal error сидит и им же погоняет.
Поиск выполняется с учетом морфологии и без учета регистра. Все буквы, независимо от того, как они введены, будут рассматриваться как строчные. По умолчанию наш поиск показывает страницы...
Для ускорения можно использовать Reserve. Что же касается fatal error, то обработка отрицательного значения ArrayResize - это уже по желанию.
Нет, не об ускорении речь. Сначала стоит думать о надежности. А потому обработку возврата значения ArrayResize ну никак нельзя назвать "по желанию". Все-таки здесь ветка не для новичков, где рассказываются азы и даются упрощенные примеры.
P. S. Кстати, вернуть ArrayResize может и положительное значение, но при этом все равно получим ошибку выхода за пределы массива.
обработку возврата значения ArrayResize ну никак нельзя назвать "по желанию". Все-таки здесь ветка не для новичков, где рассказываются азы и даются упрощенные примеры.
В данном случае не вижу уместным убивать наглядность в угоду надежности. Задача была показать второй метод. Здесь был продемонстрирован именно прием, а не универсальное готовое решение.
Копи-пастить мои коды нельзя. Они всегда только в учебных целях. Т.е. предполагается, что человек будет разбираться в коде и, поняв основную идею, напишет свой вариант на ее основе.
P. S. Кстати, вернуть ArrayResize может и положительное значение, но при этом все равно получим ошибку выхода за пределы массива.
Выхода за пределы массива в такой ситуации не будет.
Выхода за пределы массива в такой ситуации не будет.
Пожалуйста:
void AddElements(int &arrnArray[], int nCount)
{
int nTotal = ArraySize(arrnArray);
if (ArrayResize(arrnArray, nTotal + nCount) < 0)
return;
for (int i = nTotal + nCount - 1; i >= nTotal; --i)
arrnArray[i] = i;
}
В тех случаях, когда массив arrnArray невозможно расширить, ArrayResize вернет текущий размер массива (как минимум, 0). Поэтому выполнение тела цикла приведет к выходу за пределы массива.
Forum on trading, automated trading systems and testing trading strategies
Discussion of article "Creating and testing custom symbols in MetaTrader 5"
fxsaber, 2018.04.12 07:59
Наверное, не многие так делают, поэтому сюдаСам пользуюсь вторым вариантом, когда нужно что-нибудь распарсить. Наверное, и работает быстрее, не проверял.
Второй вариант не только лучше, но и корректнее. Первый вариант ненадежный. В нем fatal error на fatal error сидит и им же погоняет.
Второй вариант не только лучше, но и корректнее. Первый вариант ненадежный. В нем fatal error на fatal error сидит и им же погоняет.
Особых проблем в первом варианте не увидел. Что же касается второго, то, похоже, его использует один-два человека.
Особых проблем в первом варианте не увидел. Что же касается второго, то, похоже, его использует один-два человека.
Ну как же? А что вот это:
если не fatal error?
Ну как же? А что вот это:
если не fatal error?
Для ускорения можно использовать Reserve. Правда, смысл в Reserve сомнителен в данном случае, т.к. массив сложных объектов - string.
Что же касается fatal error, то обработка отрицательного значения ArrayResize - это уже по желанию.
Для ускорения можно использовать Reserve. Что же касается fatal error, то обработка отрицательного значения ArrayResize - это уже по желанию.
Нет, не об ускорении речь. Сначала стоит думать о надежности. А потому обработку возврата значения ArrayResize ну никак нельзя назвать "по желанию". Все-таки здесь ветка не для новичков, где рассказываются азы и даются упрощенные примеры.
P. S. Кстати, вернуть ArrayResize может и положительное значение, но при этом все равно получим ошибку выхода за пределы массива.обработку возврата значения ArrayResize ну никак нельзя назвать "по желанию". Все-таки здесь ветка не для новичков, где рассказываются азы и даются упрощенные примеры.
В данном случае не вижу уместным убивать наглядность в угоду надежности. Задача была показать второй метод. Здесь был продемонстрирован именно прием, а не универсальное готовое решение.
Копи-пастить мои коды нельзя. Они всегда только в учебных целях. Т.е. предполагается, что человек будет разбираться в коде и, поняв основную идею, напишет свой вариант на ее основе.
Выхода за пределы массива в такой ситуации не будет.
Пожалуйста:
В тех случаях, когда массив arrnArray невозможно расширить, ArrayResize вернет текущий размер массива (как минимум, 0). Поэтому выполнение тела цикла приведет к выходу за пределы массива.