while(strarray[i].size != 0) i++; Насколько верным будет подобное решение? Делаю унификацию отправки склейки из строк, ведущие функции могут выдать как 7 строк в массиве, так и 2. Ай, немного не туда, ну да ладно.
while(strarray[i].size != 0) i++; Насколько верным будет подобное решение? Делаю унификацию отправки склейки из строк, ведущие функции могут выдать как 7 строк в массиве, так и 2. Ай, немного не туда, ну да ладно.
Комментарии: 11
Viacheslav
i=0; while(strarray[i].size != 0) {i++;} чуть правильней
Anonim
Это все рабочие моменты, больше волнует реакция стд.стринг на указатель пальцем в небо в массиве.
Viacheslav
это если у массива нет sizeof ну а кто мешает и массив изначально обнулить?
Anonim
Не вылечу ли я в hardfault к чертикам. Первые три строки к примеру инициализированы, четвертая и далее - нет. Корректно ли обработаются? Ограниченные знания крестов на отрезок времени
Viacheslav
а это надо смотреть на реализацию метода size. если юзаешь стандартную, то не должно и да, если стандартная, то i=0; while(strarray[i].size() != 0) {i++;} size - это функция ну и да, на всякий: она считает байты, а не символы. и еще одна засада: оно отработает и вернет 2 , если 1, 2 ,4 элементы - строки что-то содержащие, а 3 - пустой. Но вдруг тебе это и надо так
Anonim
Мне нужно до первой непроинициализированной. Блин, в крестоконфе от таких вопросов вываливаются в окно с широко раскрытыми глазами
Dolphin
i=0; while(strarray[(i++)+1].size); еще чуть правильней :)
Viacheslav
А вот тут уже можно начать спорить. При ревью придётся тормознуть и считать плюсики и скобочки, мысленно приводя результат. Имхо не так читабельно
Dolphin
проблемы читающего