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

Find all elements in a vector of strings that contain a substring

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

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

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

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

开头的字符串

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

您可以使用 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'); }); 

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