Не удается получить элемент из std::vector
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 03.07.19 12:39
Оценка:
Есть некоторая структура aps типа addparstruct, в которой содержатся различные поля данных. В частности, в этой структуре есть поле Vimparray типа vector<long double> и поле timparray типа vector<string> .
Ниже приведён код для работы с переменной aps:

char  schartcorr[80];
string  stcorr;

//...

n = aps.Vimparray();
if (n>0)
{
    for (i=0; i<n/3; i++)
    {
        if (aps.timparray.size()>0)
        {
            stcorr = (string)(aps.timparray.at(i));
            strcpy(schartcorr,stcorr.c_str());
            sprintf(s2, " tcorr %d = %s \r\n",i+1,schartocorr);
            strcat(s,s2);
        }
        val1 = (long double)(aps.Vimparray.at(i*3));
        val2 = (long double)(aps.Vimparray.at(i*3+1));
        val3 = (long double)(aps.Vimparray.at(i*3+2));
        sprintf(s2," dV%dx(м/с)    % .15le    % .15le    % .9le \r\n",i+1,val1,val2,val3);
        strcat(s,s2);
    }
}


При этом во время запуска программы в отладчике происходит остановка действия программы на строке stcorr = (string)(aps.timparray.at(i)); с выводом сообщения:

Необработанное исключение по адресу 0x7581AAF2 (KernelBase.dll) в BallisticRG.exe: 0xC000041D: Во время вызова пользователя обнаружено необработанное исключение


После чего программа останавливается на этом месте.

Если заменить строку stcorr = (string)(aps.timparray.at(i)); на строку stcorr = (string)(aps.timparray[i]); , то тогда появится другое сообщение:

Необработанное исключение по адресу 0x6F01DF22 (msvcr110.dll) в BallisticRG.exe: 0xC000041D: Во время обратного вызова пользователя обнаружено необработанное исключение


При этом, если я закомментирую строки

if (aps.timparray.size()>0)
        {
            stcorr = (string)(aps.timparray.at(i));
            strcpy(schartcorr,stcorr.c_str());
            sprintf(s2, " tcorr %d = %s \r\n",i+1,schartocorr);
            strcat(s,s2);
        }


то тогда программа у меня нормально работает.

Что это всё означает? Как решить эту проблему?
1613 г. = 2024 г.
Re: Не удается получить элемент из std::vector
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 03.07.19 12:41
Оценка:
P.S. Длинная строка s, в которую помещаются малые строки s2--это строка, которая выводится в многострочное текстовое поле типа CEdit на диалоговом окне. Сама моя программа--диалоговое интерфейсное приложение на основе MFC, среда разработки--Visual Studio 2012.
1613 г. = 2024 г.
Re: Не удается получить элемент из std::vector
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 03.07.19 12:52
Оценка: +8
Здравствуйте, RussianFellow, Вы писали:

RF>Что это всё означает? Как решить эту проблему?


1. Проверять не size > 0, а size > i?
2. Найти работу не программистом.
Re: Не удается получить элемент из std::vector
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 03.07.19 14:23
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Что это всё означает? Как решить эту проблему?

Пиши на С или вообще займись чем-то другим, не напрягайся. Ну не получается у тебя.
Sic luceat lux!
Re: Не удается получить элемент из std::vector
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 03.07.19 15:04
Оценка: +2
Здравствуйте, RussianFellow, Вы писали:

RF>Что это всё означает? Как решить эту проблему?


Вообще, глядя на код, кажется, что его писала обезьянка из анекдота про фронтэндера. Зачем проверять n>0?
А строки! Там есть char и string, strcpy и sprintf. Ты же MFC используешь? В конце концов ещё и туда конвертируешь небось.
Re: Не удается получить элемент из std::vector
От: reversecode google
Дата: 03.07.19 15:11
Оценка: +4 :)
если это и весь ваш опыт который вы получили за последние 7 лет с момента прихода на этот форум
то у меня для вас плохая новость
Re[2]: Не удается получить элемент из std::vector
От: niXman Ниоткуда https://github.com/niXman
Дата: 04.07.19 19:38
Оценка:
Здравствуйте, reversecode, Вы писали:

R>... за последние 7 лет


25 процентов профильных сообщений, значит за почти два года
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[3]: Не удается получить элемент из std::vector
От: reversecode google
Дата: 04.07.19 20:12
Оценка:
ему 45 лет
средне статистическая тема о том как написать макрос на С++ у него за 16 год
сейчас за окном 19 год
я бы сказал что уже все, пусть ищет себя в чем то другом
Re[4]: Не удается получить элемент из std::vector
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 05.07.19 06:51
Оценка:
Здравствуйте, reversecode, Вы писали:

R>ему 45 лет

R>средне статистическая тема о том как написать макрос на С++ у него за 16 год
R>сейчас за окном 19 год
R>я бы сказал что уже все, пусть ищет себя в чем то другом

Мальчик, пошёл вон!
Встретиться бы с тобой в реале...

Я спрашиваю в профильных форумах то, с чем у меня возникают проблемы.
1613 г. = 2024 г.
Re[5]: Не удается получить элемент из std::vector
От: Homunculus Россия  
Дата: 05.07.19 06:59
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Я спрашиваю в профильных форумах то, с чем у меня возникают проблемы.


Тебе здравый совет дают. Зря обижаешься.
Re[2]: Не удается получить элемент из std::vector
От: AlexGin Беларусь  
Дата: 05.07.19 10:43
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Пиши на С...


Там свои сложности, которых не мало (тем более, что чистый C предполагает нишу системнного программирования).
Лично мне видится, что зачастую разработка на C++ получается проще. Вероятно — за счет более высокоуровневого инструментария.

K>...или вообще займись чем-то другим, не напрягайся. Ну не получается у тебя.

+100500
Отредактировано 05.07.2019 19:01 AlexGin . Предыдущая версия . Еще …
Отредактировано 05.07.2019 10:49 AlexGin . Предыдущая версия .
Re[5]: Не удается получить элемент из std::vector
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 05.07.19 14:22
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Мальчик, пошёл вон!

RF>Встретиться бы с тобой в реале...
Ну-ну.
RF>Я спрашиваю в профильных форумах то, с чем у меня возникают проблемы.
Твои вопросы решаются не на рсдн, а в ближайшем ПНД.
Sic luceat lux!
Re[5]: Не удается получить элемент из std::vector
От: niXman Ниоткуда https://github.com/niXman
Дата: 05.07.19 14:24
Оценка: +2
Здравствуйте, RussianFellow, Вы писали:

RF>Мальчик, пошёл вон!

RF>Встретиться бы с тобой в реале...
быдлота детектед.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Отредактировано 05.07.2019 14:25 niXman . Предыдущая версия .
Re[6]: Не удается получить элемент из std::vector
От: niXman Ниоткуда https://github.com/niXman
Дата: 05.07.19 14:24
Оценка:
Здравствуйте, Kernan, Вы писали:

K>... ПНД


что это?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[7]: Не удается получить элемент из std::vector
От: reversecode google
Дата: 05.07.19 14:32
Оценка:
пнд психоневрологический диспансер
Re[8]: Не удается получить элемент из std::vector
От: niXman Ниоткуда https://github.com/niXman
Дата: 05.07.19 14:37
Оценка:
Здравствуйте, reversecode, Вы писали:

R>пнд психоневрологический диспансер

%)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[2]: Не удается получить элемент из std::vector
От: iriska2  
Дата: 05.07.19 16:15
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Здравствуйте, RussianFellow, Вы писали:


RF>>Что это всё означает? Как решить эту проблему?

K>Пиши на С или вообще займись чем-то другим, не напрягайся. Ну не получается у тебя.
Боже мой, это ощущение русского форума, не хотите отвечать не отвечайте, но срать на голову то зачем?
Re[3]: Не удается получить элемент из std::vector
От: reversecode google
Дата: 05.07.19 16:28
Оценка:
а вам какие больше нравятся, французские форумы или американские ?
на французских будут помогать так что бы не получалось как можно дольше
на американских после нескольких дней, автор сам забросит и пойдет искать себя в том что будет получатся

и только на русских форумах гинеколог будет несколько лет пытаться распилить полено ровно
и только на русских форумах будут те кто будет его подбадривать, что бы он потратил всю жизнь так и не научившись его пилить
Re[6]: Не удается получить элемент из std::vector
От: pagid Россия  
Дата: 07.07.19 08:49
Оценка: +1
Здравствуйте, niXman, Вы писали:

X>быдлота детектед.


Да тут не топик, а парад этого самого получился.
Re: Не удается получить элемент из std::vector
От: Muxa  
Дата: 08.07.19 06:58
Оценка: :))) :))
RF>При этом, если я закомментирую строки
RF>то тогда программа у меня нормально работает.
RF>Как решить эту проблему?

Очевидно, оставить эти строки закомментированными.
Отредактировано 08.07.2019 10:42 Muxa . Предыдущая версия .
Re[3]: Не удается получить элемент из std::vector
От: Gaia  
Дата: 08.07.19 11:17
Оценка: +1
Здравствуйте, iriska2, Вы писали:


I>Боже мой, это ощущение русского форума, не хотите отвечать не отвечайте, но срать на голову то зачем?


Кажется, в данном случае это чудо заслужило. Рекомендую ознакомиться с небольшим анализом этого форума от этого индивида
Re[4]: Не удается получить элемент из std::vector
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.07.19 12:17
Оценка:
Здравствуйте, Gaia, Вы писали:

G>Кажется, в данном случае это чудо заслужило. Рекомендую ознакомиться с небольшим анализом этого форума от этого индивида

G>

ужос %)
я думал такие только на телевидении работают икспертами во всяких токшоу...
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Отредактировано 08.07.2019 12:17 niXman . Предыдущая версия .
Re[7]: Не удается получить элемент из std::vector
От: alpha21264 СССР  
Дата: 08.07.19 18:44
Оценка:
Здравствуйте, pagid, Вы писали:

X>>быдлота детектед.


P>Да тут не топик, а парад этого самого получился.


Очень тяжело удержаться.

Течёт вода Кубань-реки куда велят большевики.
Re[3]: Не удается получить элемент из std::vector
От: Igore Россия  
Дата: 09.07.19 13:01
Оценка: +1
Здравствуйте, iriska2, Вы писали:

I>Боже мой, это ощущение русского форума, не хотите отвечать не отвечайте, но срать на голову то зачем?

Если человек который хочет програмировать на С++ за несклько лет не смог освоить базовые примитивы(его код ужасен), и не научился пользоваться отладчиком под которым видно что i больше размерности масива, то советы ему дают правильные, не его это, не его, там даже специальное std::out_of_range exception кидается, но нет, всего этого не достаточно.
Re[2]: Не удается получить элемент из std::vector
От: pugv Россия  
Дата: 10.07.19 09:38
Оценка:
Здравствуйте, Muxa, Вы писали:

M> Очевидно, оставить эти строки закомментированными.


А ещё лучше закомментировать и остальные.
Re[3]: Не удается получить элемент из std::vector
От: andyp  
Дата: 10.07.19 09:51
Оценка:
Здравствуйте, pugv, Вы писали:

P>А ещё лучше закомментировать и остальные.


Так нельзя. Современное дао говорит что единственный возможный длинный коммент в программе — текст лицензии gpl. Так что, в соответствии с лучшими практиками, стереть не дожидаясь перитонитов
Re: Не удается получить элемент из std::vector
От: TimurSPB Интернет  
Дата: 10.07.19 10:04
Оценка:
RF>Необработанное исключение по адресу 0x7581AAF2 (KernelBase.dll) в BallisticRG.exe
BallisticRG


предлагаю начать операцию по уничтожению мира с основ С++. https://ru.coursera.org/learn/c-plus-plus-white
Make flame.politics Great Again!
Re: Не удается получить элемент из std::vector
От: anatolym  
Дата: 10.07.19 13:44
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Что это всё означает? Как решить эту проблему?


Учиться. Не хочешь учиться, будешь страдать.
Re: Не удается получить элемент из std::vector
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 11.07.19 11:31
Оценка:
Я нашёл свою ошибку--оказалось, я попутал там с размерностью этого aps.timparray и с индексами элементов этого массива (вектора).

Но зачем мне писать в ответах, что будто бы программирование--это не моё, что мне надо уйти из программирования?
1613 г. = 2024 г.
Re[2]: Не удается получить элемент из std::vector
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.07.19 11:37
Оценка: +1
Здравствуйте, RussianFellow, Вы писали:

RF>Но зачем мне писать в ответах, что будто бы программирование--это не моё, что мне надо уйти из программирования?


1. Потому что твой код ужасен даже для начинающего программиста.
2. Потому что ты сам не видишь причину очевидной ошибки.
3. Потому что ты игнорируешь показания отладчика.
Re[4]: Не удается получить элемент из std::vector
От: xma  
Дата: 11.07.19 12:25
Оценка:
Здравствуйте, Igore, Вы писали:

I>>Боже мой, это ощущение русского форума, не хотите отвечать не отвечайте, но срать на голову то зачем?

I>Если человек который хочет програмировать на С++ за несклько лет не смог освоить базовые примитивы(его код ужасен), и не научился пользоваться отладчиком под которым видно что i больше размерности масива, то советы ему дают правильные, не его это, не его, там даже специальное std::out_of_range exception кидается, но нет, всего этого не достаточно.

та чё вы пристали к человеку — раз ему платят за работу и не выгоняют — значит он таки стоит своих денег .. ленится может быть конечно "книжки умные" почитать и расширить кругозор, но раз ему и так хватает чтобы методом тыка дебажить код — то чего ради ему идти в те же грузчики и прочий напряжний ширпотрёб только из за ваших злопыханий, когда он тут на коне ..
Отредактировано 11.07.2019 12:25 xma . Предыдущая версия .
Re[5]: Не удается получить элемент из std::vector
От: Muxa  
Дата: 11.07.19 12:27
Оценка:
xma>чего ради ему идти в те же грузчики и прочий напряжний ширпотрёб только из за ваших злопыханий, когда он тут на коне ..
грузчиком можно больше сорокета зарабатывать
Re[6]: Не удается получить элемент из std::vector
От: xma  
Дата: 11.07.19 13:57
Оценка:
Здравствуйте, Muxa, Вы писали:

xma>>чего ради ему идти в те же грузчики и прочий напряжний ширпотрёб только из за ваших злопыханий, когда он тут на коне ..

M>грузчиком можно больше сорокета зарабатывать

"так это ж грузить надо" (c) — халёному погромизду такое не под силу .. короче говоря — "душевное равновесие" (c) как то важнее ..
Re[3]: Не удается получить элемент из std::vector
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 12.07.19 06:50
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, RussianFellow, Вы писали:


RF>>Но зачем мне писать в ответах, что будто бы программирование--это не моё, что мне надо уйти из программирования?


N>1. Потому что твой код ужасен даже для начинающего программиста.


Приведи пример хорошего кода.
1613 г. = 2024 г.
Re[4]: Не удается получить элемент из std::vector
От: lpd Черногория  
Дата: 12.07.19 06:56
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Здравствуйте, Nuzhny, Вы писали:


N>>1. Потому что твой код ужасен даже для начинающего программиста.


RF>Приведи пример хорошего кода.


Вроде, здесь
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Re[4]: Не удается получить элемент из std::vector
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 12.07.19 07:21
Оценка:
Здравствуйте, RussianFellow, Вы писали:

N>>1. Потому что твой код ужасен даже для начинающего программиста.

RF>Приведи пример хорошего кода.

Вот нормальный: https://github.com/opencv/opencv
Но сам подход у тебя неверный, уже подсказали конкретно, что в твоём плохо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.