如何存储字符串列表

时间:2017-08-20 11:03:43

标签: c++ arrays list

我想存储我将生成的字符串列表。我不知道字符串的数量,如果列表中有相同的字符串,我也不想存储它们。然后我希望能够计算列表中的字符串数量。

谢谢!

1 个答案:

答案 0 :(得分:0)

std::set用于自动保留元素排序的容器,并且只允许不同的元素(不重复),例如

std::set<std::string> s;

s.emplace("Arthur");
s.emplace("Barry");
s.emplace("Barry");
s.emplace("Barry");
s.emplace("Charlie");

std::cout << std::size(s) << std::endl; // Outputs '3'.

如果您需要快速访问并且很少更新容器,您也可以使用std::vector并在每次插入后删除所有重复项。

std::vector<std::string> v;

v.emplace_back("Arthur");
v.emplace_back("Barry");
v.emplace_back("Barry");
v.emplace_back("Barry");
v.emplace_back("Charlie");

std::sort(std::begin(v), std::end(v)); // Sort needed for 'std::unique' to always work.
v.erase(std::unique(std::begin(v), std::end(v)), std::end(v)); // Remove duplicates.

std::cout << std::size(v) << std::endl; // Outputs '3'.

std::vector 保持元素排序。