【发布时间】:2016-03-03 16:30:34
【问题描述】:
我有一个包含很多字符串的向量。
v[0] = "Agra"
v[1] = "Amritsar"
v[2] = "Bombay"
v[3] = "Bangalore"
现在我想要的是所有以一个或多个特定字母开头的字符串。
例如:如果输入字母是B,那么我应该得到所有以B 开头的字符串。
如果输入字母是BO,那么所有以BO开头的字符串
除了按顺序迭代向量之外还有什么方法吗?
【问题讨论】:
-
你知道元素是按照示例数据中的排序顺序存储的,还是只是巧合?如果它们已排序,那么您可以对第一个匹配项执行(修改的)二进制搜索等操作,然后扫描直到该值不再匹配。如果它们没有排序,你就不能这样做;您必须对矢量进行完整扫描。
标签: c++ vector string-matching