簡體   English   中英

有沒有更短的方法來獲取兩個字符串的交集和並集?

[英]Is there any shorter way of getting an intersection and union of two strings?

有沒有更短的方法來獲取兩個字符串的交集和並集? 我一直在尋找如何獲取字符串的交集和並集,並遇到此答案兩個字符串的交集和並集 ,但是,對於這種簡單的操作而言似乎太長了,也許是因為我曾經使用過python樣式(我最近開始學習C ++)。 無論如何,如果有人向我展示此方法,我將不勝感激。

您可以通過使用范圍庫(例如Boost.Range)來減少詳細程度。 STL非常冗長,因為它基於迭代器,而不是本質上是成對的迭代器的范圍。 使用Boost.Range,您可以編寫

std::string s1, s2;
std::string difference;
boost::set_difference( boost::sort(s1), boost::sort(s2), std::back_inserter(difference) );

正如評論所暗示的,不。

本質上,鏈接解決方案的“冗長性”是因為必須指定所有這些參數才能通用。 一些常見的操作具有較少的詳細特定變體(例如,與std::equal相比, string::operator=使用較少冗長),但涵蓋了常見的函數。 兩個字符串的並集不是一個常見的操作,它在家庭作業中可能比在其他任何地方都使用更多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM