<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891983</guid>
        <pubDate>Fri, 16 Jun 2023 18:51:21 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891983</link>
        <description><![CDATA[Qraizer: А. Ну да. Я ж так в P.S. и написал, что с ?: проблемы нет. В отличие от =. Левый для = операнд map[i] может быть вычислен раньше, чем начнётся вычисляться правый операнд =, поэтому map.count() уже насчитает 1. Благо, инициализирующее значение по умолчанию для decltype(map)::mapped_type будет равно 0, поэтому отработав true для ?:, получим ту же 1, что и для false. И тем не менее, дефект в коде есть, просто в данном конкретном случае он не приводит в багу. Зато в аналогичной ситуации в другом окружении запросто сможет.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891981</guid>
        <pubDate>Fri, 16 Jun 2023 18:21:04 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891981</link>
        <description><![CDATA[Majestio: Не не , речь только о &quot;?:&quot; Я почитал, что для выражения &quot;?:&quot; точка следования появляется сразу после вычисления &quot;условия&quot;. В нашем этом случае m.count(i) никаких модификаций не производит. Следовательно далее будет выполняться либо 2-е выражение, либо 3-е, в зависимости от 1-го. Как результат - никаких побочек не будет. Потенциальная &quot;дырка&quot; - предвычисление в блоке сравнение (до появления этой первой точки следования). Но у меня тут все ровно.]]></description>
        <author>Majestio</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891979</guid>
        <pubDate>Fri, 16 Jun 2023 17:35:52 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891979</link>
        <description><![CDATA[Qraizer: Не могу. Не от моего желания зависит, а от желания компилятора. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2023-06-16T18:10:57+00:00">16.06.23, 18:10</time></span></span><br>
Но можно сэмулировать на чём-то более простом.<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">int x[] = { 123, 456 }, *ptr = x;</div><div class="code_line">&nbsp;</div><div class="code_line">int *print(const char* msg, int *ptr)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;std::cout &#60;&#60; msg &#60;&#60; &quot;, arg is &quot; &#60;&#60; ptr &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp;return ptr;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int main()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;*print(&quot;pred&quot;, ptr) = *print(&quot;post&quot;, ptr++);</div><div class="code_line">&nbsp;&nbsp;std::cout &#60;&#60; x[0] &#60;&#60; &#39; &#39; &#60;&#60; x[1] &#60;&#60; std::endl;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>Вызовы Функций и возвраты из них вносят точки следования, поэтому будет чётко видно, какой операнд вычисляется ранее, какой позднее.<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">D:\Work\delMe&#62;cl -EHs -O1 -Fa q.cpp</div><div class="code_line">Оптимизирующий компилятор Microsoft (R) C/C++ версии 19.36.32534 для x86</div><div class="code_line">(C) Корпорация Майкрософт (Microsoft Corporation). &nbsp;Все права защищены.</div><div class="code_line">&nbsp;</div><div class="code_line">q.cpp</div><div class="code_line">Microsoft (R) Incremental Linker Version 14.36.32534.0</div><div class="code_line">Copyright (C) Microsoft Corporation. &nbsp;All rights reserved.</div><div class="code_line">&nbsp;</div><div class="code_line">/out:q.exe</div><div class="code_line">q.obj</div><div class="code_line">&nbsp;</div><div class="code_line">D:\Work\delMe&#62;q</div><div class="code_line">post, arg is 009B1000</div><div class="code_line">pred, arg is 009B1004</div><div class="code_line">123 123</div><div class="code_line">&nbsp;</div><div class="code_line">D:\Work\delMe&#62;cl -EHs -O2 -Fa q.cpp</div><div class="code_line">Оптимизирующий компилятор Microsoft (R) C/C++ версии 19.36.32534 для x86</div><div class="code_line">(C) Корпорация Майкрософт (Microsoft Corporation). &nbsp;Все права защищены.</div><div class="code_line">&nbsp;</div><div class="code_line">q.cpp</div><div class="code_line">Microsoft (R) Incremental Linker Version 14.36.32534.0</div><div class="code_line">Copyright (C) Microsoft Corporation. &nbsp;All rights reserved.</div><div class="code_line">&nbsp;</div><div class="code_line">/out:q.exe</div><div class="code_line">q.obj</div><div class="code_line">&nbsp;</div><div class="code_line">D:\Work\delMe\q&#62;q</div><div class="code_line">pred, arg is 00D43004</div><div class="code_line">post, arg is 00D43000</div><div class="code_line">123 123</div></ol></div></div></div></div>При оптимизации по размеру компилятор решил вычислять сначала правый, а если по скорости, то левый.<br>
<br>
P.S. Это минимальный пример. Стоит его чуть упростить, например, выкинуть печать x[], эффект пропадает.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891976</guid>
        <pubDate>Fri, 16 Jun 2023 16:59:41 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891976</link>
        <description><![CDATA[Majestio: Но ведь конструкция<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">map[i] = (map.count(i) &#62; 0) ? map[i] + 1 : 1;</div></ol></div></div></div></div> всё равно отрабатывает как должно? Можешь привести пример, когда &quot;Тут map[i] слева может быть вычислено до map.count(i), что может ошибочно повести код по ветке &gt; 0&quot;. Собственно, вопрос в &quot;может быть вычислено&quot;. Может при каких условиях, что нужно, чтобы это произошло, и я мог бы это увидеть?]]></description>
        <author>Majestio</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891970</guid>
        <pubDate>Fri, 16 Jun 2023 16:03:15 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891970</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=435698&view=findpost&p=3891953'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Majestio &#064; <time class="tag-quote__quoted-time" datetime="2023-06-16T12:36:01+00:00">16.06.23, 12:36</time></span><div class='quote '>Интересно. Аргументируй плс </div></div>Операнды в выражении между точками следования могут вычисляться в произвольном порядке. Это операции обязаны выполняться в строгом порядке, но вот подготовка операндов для них не обязана соблюдать порядок их появления в выражении. Для операций присваивания есть дополнительное требование, что само присваивание выполняется после вычисления обоих операндов и перед формированием результата самой операции (спецом для каких-нибудь a=b=c+d, где результат b=c+d используется как правый операнд в присваивании a=), но нет требования вычислять правый операнд обязательно ранее левого.<br>
<br>
P.S. Замечу, что в ?: вводится точка следования после вычисления условия, так что второй map[i] проблемы переупорядочивания с map.count(i) не имеет.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891958</guid>
        <pubDate>Fri, 16 Jun 2023 13:41:53 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891958</link>
        <description><![CDATA[tumanovalex: Постараюсь работать больше и пытаться решать задачи разными способами]]></description>
        <author>tumanovalex</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891956</guid>
        <pubDate>Fri, 16 Jun 2023 13:03:42 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891956</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=435698&view=findpost&p=3891941'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2023-06-16T11:30:23+00:00">16.06.23, 11:30</time></span><div class='quote '>Но потом возникла задача правильно добавить элементы в выходной массив, решение которой тоже потребовало дополнительного кода. Может быть это потому, что я плохо разбираюсь в C++.</div></div><br>
Вот именно.<br>
Чтобы получить опыт, надо больше работать. <br>
Поэтому задачу можно модифицировать:<br>
Если будет найдено 5 алгоритмов и сделано 5 реализаций - то это 5<br>
Если 4 - оценка &quot;хорошо&quot;.<br>
Меньше 3-х - это &quot;незачёт&quot;, всё сначала.]]></description>
        <author>ЫукпШ</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891955</guid>
        <pubDate>Fri, 16 Jun 2023 13:03:22 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891955</link>
        <description><![CDATA[tumanovalex: Спасибо всем ответившим&#33;]]></description>
        <author>tumanovalex</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891953</guid>
        <pubDate>Fri, 16 Jun 2023 12:36:01 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891953</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=435698&view=findpost&p=3891942'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2023-06-16T12:06:35+00:00">16.06.23, 12:06</time></span><div class='quote '>Тут map[i] слева может быть вычислено до map.count(i), что может ошибочно повести код по ветке &gt; 0, если ключ только-только был создан.</div></div><br>
Интересно. Аргументируй плс  :-? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2023-06-16T12:48:52+00:00">16.06.23, 12:48</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=435698&view=findpost&p=3891942'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2023-06-16T12:06:35+00:00">16.06.23, 12:06</time></span><div class='quote '>но к счастью тут достаточно простого<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">    ++map[i];</div></ol></div></div></div></div><br>
</div></div><br>
Да, так будет гораздо симпатичнее. <br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">for(auto &amp;&amp;i:str) {</div><div class="code_line">&nbsp;&nbsp;std::ostringstream oss;</div><div class="code_line">&nbsp;&nbsp;oss &#60;&#60; &#39;_&#39; &#60;&#60; std::setfill(&#39;0&#39;) &#60;&#60; std::setw(3) &#60;&#60; ++map[i];</div><div class="code_line">&nbsp;&nbsp;out.push_back(i + oss.str());</div><div class="code_line">}</div></ol></div></div></div></div><br>
На счет обращения к элементу с несуществующим ключом - буду знать)]]></description>
        <author>Majestio</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891942</guid>
        <pubDate>Fri, 16 Jun 2023 12:06:35 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891942</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=435698&view=findpost&p=3891851'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Majestio &#064; <time class="tag-quote__quoted-time" datetime="2023-06-14T15:16:49+00:00">14.06.23, 15:16</time></span><div class='quote '><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">    map[i] = (map.count(i) &#62; 0) ? map[i] + 1 : 1;</div></ol></div></div></div></div></div></div>Тут map[i] слева может быть вычислено до map.count(i), что может ошибочно повести код по ветке &gt; 0, если ключ только-только был создан. Как вариант, ?: можно заменить на if(), и проблем с порядком вычислений подвыражений не будет, но к счастью тут достаточно простого<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">    ++map[i];</div></ol></div></div></div></div>]]></description>
        <author>Qraizer</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891941</guid>
        <pubDate>Fri, 16 Jun 2023 11:30:23 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891941</link>
        <description><![CDATA[tumanovalex: Я попробовал использовать вектор с парой (std:vector &lt; pair&lt;string, unsigned int&gt;&gt; vsn), потом сортировал вектор. В результате он отсортировался по строке в правильном порядке. Но потом возникла задача правильно добавить элементы в выходной массив, решение которой тоже потребовало дополнительного кода. Может быть это потому, что я плохо разбираюсь в C++.<br>С кодом Majestio я разобрался. По-моему, короче, чем у него, решения задачи не получится. Решение замечательное, я бы такое не придумал.]]></description>
        <author>tumanovalex</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891913</guid>
        <pubDate>Thu, 15 Jun 2023 14:05:27 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891913</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=435698&view=findpost&p=3891845'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2023-06-14T14:16:14+00:00">14.06.23, 14:16</time></span><div class='quote '>Мне не удалось придумать алгоритм решения этой задачи.</div></div><br>
Алгоритм может быть и таким - проведём сортировку строк.<br>
Одинаковые строки будут располагаться по-очереди.<br>
Значит, в результате сортировки получим группы одинаковых,<br>
следующих одна за другой.<br>
Надо будет запомнить индекс расположения каждой строки.<br>
Тут можно сделать структуру индекс + строка. <br>
И сортировать массив таких структур, но по строкам.<br>
Зная индекс, после сортировки и преобразования можно<br>
правильно заполнить массив с результатами.]]></description>
        <author>ЫукпШ</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891876</guid>
        <pubDate>Thu, 15 Jun 2023 08:26:04 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891876</link>
        <description><![CDATA[tumanovalex: Спасибо большое за код&#33; Буду в нем разбираться - не использовал раньше auto и map. Раньше программировал на C#, а C++ только сейчас стал изучать.]]></description>
        <author>tumanovalex</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891851</guid>
        <pubDate>Wed, 14 Jun 2023 15:16:49 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891851</link>
        <description><![CDATA[Majestio: Вот тебе решение. Правда я воспользовался std::vector, т.к. работаем с С++ и не будем тянуть Си-шный гемор.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">#include &#60;sstream&#62;</div><div class="code_line">#include &#60;iomanip&#62;</div><div class="code_line">#include &#60;vector&#62;</div><div class="code_line">#include &#60;map&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">int main(int argc, char* argv[])</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;std::vector&#60;std::string&#62; str = {&quot;строка&quot;, &quot;01строка&quot;, &quot;09строка&quot;, &quot;04строка&quot;, &quot;03строка&quot;, &quot;01строка&quot;, </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;09строка&quot;, &quot;05строка&quot;, &quot;03строка&quot;, &quot;строка&quot;, &quot;01строка&quot;, &quot;06строка&quot;, </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;03строка&quot;, &quot;06строка&quot;, &quot;09строка&quot;, &quot;строка&quot;, &quot;01строка&quot;, &quot;05строка&quot;, </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;строка&quot;, &quot;04строка&quot;, &quot;строка&quot;, &quot;09строка&quot;};</div><div class="code_line">&nbsp;&nbsp;// служебная &quot;карта&quot;</div><div class="code_line">&nbsp;&nbsp;std::map&#60;std::string, uint64_t&#62; map;</div><div class="code_line">&nbsp;&nbsp;// выходной массив</div><div class="code_line">&nbsp;&nbsp;std::vector&#60;std::string&#62; out;</div><div class="code_line">&nbsp;&nbsp;</div><div class="code_line">&nbsp;&nbsp;// собираем выходной массив &nbsp;</div><div class="code_line">&nbsp;&nbsp;for(auto &amp;&amp;i:str) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;map[i] = (map.count(i) &#62; 0) ? map[i] + 1 : 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::ostringstream oss;</div><div class="code_line">&nbsp;&nbsp; &nbsp;oss &#60;&#60; &#39;_&#39; &#60;&#60; std::setfill(&#39;0&#39;) &#60;&#60; std::setw(3) &#60;&#60; map[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp;out.push_back(i + oss.str());</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;</div><div class="code_line">&nbsp;&nbsp;// печать выходнго массива &nbsp;</div><div class="code_line">&nbsp;&nbsp;for(auto &amp;&amp;i:out) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;std::cout &#60;&#60; i &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Вывод:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">строка_001</div><div class="code_line">01строка_001</div><div class="code_line">09строка_001</div><div class="code_line">04строка_001</div><div class="code_line">03строка_001</div><div class="code_line">01строка_002</div><div class="code_line">09строка_002</div><div class="code_line">05строка_001</div><div class="code_line">03строка_002</div><div class="code_line">строка_002</div><div class="code_line">01строка_003</div><div class="code_line">06строка_001</div><div class="code_line">03строка_003</div><div class="code_line">06строка_002</div><div class="code_line">09строка_003</div><div class="code_line">строка_003</div><div class="code_line">01строка_004</div><div class="code_line">05строка_002</div><div class="code_line">строка_004</div><div class="code_line">04строка_002</div><div class="code_line">строка_005</div><div class="code_line">09строка_004</div></ol></div></div></div></div><br>
Онлайн исполнение <a class='tag-url' href='https://onlinegdb.com/taMvLON6C' target='_blank'>гляди тут</a>.]]></description>
        <author>Majestio</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891845</guid>
        <pubDate>Wed, 14 Jun 2023 14:16:14 +0000</pubDate>
        <title>Нумерация одинаковых строк без изменения их порядка в массиве</title>
        <link>https://forum.sources.ru/index.php?showtopic=435698&amp;view=findpost&amp;p=3891845</link>
        <description><![CDATA[tumanovalex: Тестовый массив строк<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">std::string str[] = {&quot;строка&quot;, &quot;01строка&quot;, &quot;09строка&quot;, &quot;04строка&quot;, &quot;03строка&quot;, &quot;01строка&quot;, &quot;09строка&quot;, &quot;05строка&quot;, &quot;03строка&quot;, &quot;строка&quot;, &quot;01строка&quot;, &quot;06строка&quot;, &quot;03строка&quot;, &quot;06строка&quot;, &quot;09строка&quot;, &quot;строка&quot;, &quot;01строка&quot;, &quot;05строка&quot;, &quot;строка&quot;, &quot;04строка&quot;, &quot;строка&quot;, &quot;09строка&quot;};</div></ol></div></div></div></div>Мне нужно пронумеровать одинаковые строки - в конец строки прибавить ее номер в формате &quot;_00n&quot; (например, строка_001, строка_002, 01строка_001, 01строка_002 и т.д.). При этом пронумерованная строка должна быть записана в другой массив на то же место, что и в исходном массиве (т.е. строка_001 на 1 место, строка_002 на 10 место и т.д.). Мне не удалось придумать алгоритм решения этой задачи. Подскажите, пожалуйста, алгоритм решения этой задачи средствами C++. Заготовку с исходным массивом прикрепил.<br>
<span class="b-attach" data-size="2168" data-hits="73" data-attach-id="64948" data-attach-post-id="3891845">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3891845&amp;attach_id=64948' title='Скачать файл' target='_blank'>vsTestCpp_Forum.zip</a> (, : 73)
		</span>]]></description>
        <author>tumanovalex</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	