我正在寻找一些STL(但不是boost)容器,在以下操作之后将包含2个元素:“abc”和“xyz”:
std::XContainer<string> string_XContainer;
string_XContainer.push_back("abc");
string_XContainer.push_back("abc");
string_XContainer.push_back("xyz");
顺便说一句,我需要它才能最终调用string_XContainer.size()
,以获得唯一字符串的总数。所以也许我甚至不需要一个容器,并且有更优雅的方式来做它?
答案 0 :(得分:18)
std::set
就是你追求的人。一个集合最多只包含每个元素的一个实例,根据您定义的某个比较器函数进行比较。
这是获取唯一字符串数量的一种方法。从您的示例中,字符串已按排序顺序排列?如果是这种情况,那么您可以创建一个数组(或其他一些简单的结构)并使用std::unique
算法。