在物件導向程式設計中,在集合的連續元素之間執行操作而不引入不需要的尾部分隔符是一項常見任務。這個問題可以透過迭代集合並有條件地列印元素之間的分隔符號來解決。
使用C 11 的基於範圍的for 循環,一個冗長但有效的解決方案是使用第二個迭代器前進1 來迭代元素:
<code class="cpp">for (auto it = items.cbegin(); it != items.cend(); it++) { cout << *it; if (std::next(it) != items.cend()) { cout << separator; } }</code>
但是,這種方法增加了第二個迭代器的開銷並模糊了主要邏輯。
為了克服這個美觀問題,一個更簡單的方法是有條件地更新一個字串變量,該變數保存分隔符號:
<code class="cpp">const auto separator = "WhatYouWantHere"; const auto* sep = ""; for (const auto& item : items) { std::cout << sep << item; sep = separator; }</code>
透過將sep 變數初始化為空字符串並在循環內更新它,我們確保在除最後一個元素之外的所有元素之間列印分隔符號。這為問題提供了簡潔有效的解決方案。
以上是如何在 C 中迭代連續元素而不使用無關的分隔符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!