迭代元素序列通常涉及列印或執行某些需要在連續元素之間使用分隔符號的操作。然而,在最後一個元素後面加上分隔符號可能是不可取的。
使用C 風格的for 循環迭代數組或使用非破壞性迭代器時對於未知大小的序列,最後一個元素的特殊大小寫可以防止額外的分隔符號:
<code class="cpp">for (const auto& item : items) { cout << item; if (std::next(it) != items.cend()) { // Not the last element cout << separator; } }</code>
C 11 引入了一個更優雅的解決方案,而不是顯式的特殊大小寫實現此目的的更簡潔的方法:
<code class="cpp">const auto separator = "WhatYouWantHere"; const auto* sep = ""; for (const auto& item : items) { std::cout << sep << item; sep = separator; // Only assign when not on the last element }</code>
在這種方法中,指標變數sep 追蹤分隔符號是否已列印。當遇到第一個元素時,sep 為空,因此不列印任何內容。隨著循環的進行,sep 被指派了分隔符號值。對於所有後續元素,分隔符號列印在元素之前。
以上是如何避免迭代循環中出現無關的分隔符號:C 11 解決方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!