<div dir="auto">Great, thanks to both of you!</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 4, 2022, 4:39 PM Kilian Henneberger via Std-Discussion &lt;<a href="mailto:std-discussion@lists.isocpp.org">std-discussion@lists.isocpp.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div>
    <br>
    <div>Am 04.05.2022 um 21:56 schrieb Jens
      Maurer via Std-Discussion:<br>
    </div>
    <blockquote type="cite">
      <pre>On 04/05/2022 21.43, Joey Pendergrast via Std-Discussion wrote:
</pre>
      <blockquote type="cite">
        <pre>I like the way that std::map gives the key and value for ranged loops:
for (auto&amp; [key, value] : my_map)

Why don&#39;t other containers allow for the &quot;index&quot; to also be gotten in a similar way?

for (auto&amp; [index, value] : any_container) would be convenient to have as well.

Or, can this be done, but I&#39;m just unaware?  Thanks in advance.
</pre>
      </blockquote>
      <pre>
Maybe something like

for (auto&amp; [value, index] : std::views::zip_view(my_vector, std::views::iota_view(0, my_vector.size()))) { ...}

could work.

Jens
</pre>
    </blockquote>
    <br>
    The correct syntax in C++23 will be:<br>
    <br>
    for (auto [value, index] : std::views::zip(my_vector,
    std::views::iota(0)) { ... }<br>
    <br>
    You have to use &quot;auto [value, index]&quot; or &quot;auto&amp;&amp; [value,
    index]&quot; as dereferencing a zip_view::iterator returns a std::pair
    (or std::tuple) by value.<br>
    Additionally, <a href="https://wg21.link/p2164r5" rel="nofollow noreferrer" target="_blank">P2164R5</a>
    proposes std::views::enumerate for C++26.<br>
    In <a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2214r0.html#enumerates-first-range" target="_blank" rel="noreferrer">P2214R0</a>
    is explained, why enumerate differs from zip + iota.<br>
    <br>
    Best regards,<br>
    Kilian<br>
  </div>

-- <br>
Std-Discussion mailing list<br>
<a href="mailto:Std-Discussion@lists.isocpp.org" target="_blank" rel="noreferrer">Std-Discussion@lists.isocpp.org</a><br>
<a href="https://lists.isocpp.org/mailman/listinfo.cgi/std-discussion" rel="noreferrer noreferrer" target="_blank">https://lists.isocpp.org/mailman/listinfo.cgi/std-discussion</a><br>
</blockquote></div>

