查找包含子字符串的字符串向量中的所有元素

时间:2015-11-30 05:11:51

标签: c++ vector string-matching

我有一个包含很多字符串的向量。

v[0] = "Agra"
v[1] = "Amritsar"
v[2] = "Bombay"
v[3] = "Bangalore"

现在我想要的是所有以特定字母开头的字符串。

例如:如果输入的字母是B,那么我应该得到所有以B开头的字符串。 如果输入字母为BO,则所有字符串均以BO

开头

除了顺序迭代向量之外还有什么方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用std::copy_if

std::vector<std::string> v_source = { ... };
std::vector<std::string> v_destination;

std::copy_if(v_source.begin(),
             v_source.end(),
             std::back_inserter(v_destination),
             [](std::string const& s) { return (s.size() > 0 && s[0] == 'B'); }); 

答案 1 :(得分:1)

您可以使用trie结构化树来存储数据。