我正在寻找一些 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()
,以获得唯一字符串的总数。所以也许我什至不需要容器,还有更优雅的方法吗?
最佳答案
std::set
是你所追求的。一个集合最多包含每个元素的一个实例,根据您定义的某个比较器函数进行比较。
这是获取唯一字符串数量的一种方法。从您的示例中,字符串已经按排序顺序排列?如果是这种情况,那么您可以创建一个数组(或其他一些简单的结构)并使用 std::unique
算法。
关于c++ - 如果我想让它忽略重复的元素,应该使用哪个 STL 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1905876/