#c #opencv
Вопрос:
Я новичок в cpp, и у меня есть ситуация, в которой я хочу разделить строку массива
У меня есть
for( i = k = 0; i lt; points[1].size(); i ) { cout lt;lt; points[1][k]; }
Вывод gt;gt;gt;
[390.826, 69.2596] [500.324, 92.9649] [475.391, 132.093] [5.60519e-44, 4.62428e-44]
Я хочу
390.826 69.2596 500.324 92.9649 475.391 132.093 5.60519e-44 4.62428e-44
Пожалуйста, помогите мне.Спасибо
Комментарии:
1. Что такое
points
? Почему ваше тело цикла не включает переменную циклаi
?
Ответ №1:
Предполагая, что тип точки имеет public
элементы x
и y
:
for( i = k = 0; i lt; points[1].size(); i ) { cout lt;lt; points[1][k].x lt;lt; endl; cout lt;lt; points[1][k].y lt;lt; endl; }
Если члены-это что-то другое, скажем, X
и Y
(верхний регистр), то вместо этого используйте верхний регистр (или что бы это ни было).
Причина, по которой вы кодируете вывод таким образом, заключается в том, что operatorlt;lt;
он был перегружен для типа точки. Что-то вроде:
std::ostream amp; operatorlt;lt;(std::ostream amp; out, const point amp;p) { return out lt;lt; "[" lt;lt; p.x lt;lt; "," lt;lt; p.y lt;lt; "]n"; }
Если вы можете найти приведенное выше определение (или что-то подобное) где-нибудь в исходном коде вашего проекта, а затем изменить его на это:
std::ostream amp; operatorlt;lt;(std::ostream amp; out, const point amp;p) { return out lt;lt; p.x lt;lt; "n" lt;lt; p.y lt;lt; "n"; }
тогда вам не нужно было бы изменять код в вашем for
цикле.
Комментарии:
1. @Nim: Ха-ха, это было просто предположение, что у этого типа будут
x
иy
члены.:D2. Это не значит, что это ваш опыт. В любом случае, спасибо, что это сработало для меня
Ответ №2:
Это не имеет ничего общего с разделением строк, что points[1][k]
на самом деле возвращает (т. Е. Это тип). Затем посмотрите, как он реализовал оператор stream out ( operatorlt;lt;
), и вы увидите, как печатается вышесказанное. Это должно дать вам представление о двух отдельных значениях (т. Е. полях этого типа*), и вы можете просто получить к ним доступ и распечатать их.
Комментарии:
1. не могли бы вы, пожалуйста, помочь мне хотя бы ссылкой
2. @WasimKarani, ссылка на что? Я не знаю, что
points[1][k]
это такое, ты единственный, кто знает… вам нужно взглянуть на код.