1

我有一个char* t, 我想在字符串向量中找到它。例如,char *t指向"abc",我的向量与"abc"a相同string

4

2 回答 2

3

使用std::find- 它将隐式转换char*std::string.

auto foundIterator = std::find(vec.begin(), vec.end(), t);

如果元素不在向量中,则foundIterator等于vec.end()

于 2012-12-19T07:27:40.697 回答
1

这本身并不是一个真正的新答案,只是@Luchian 发布的一些演示代码:

#include <string>
#include <algorithm>
#include <sstream>
#include <iostream>

int main() { 

    std::vector<std::string> data;

    for (int i=0; i<10; i++) {
        std::ostringstream b;
        b << "String " << i;
        data.push_back(b.str());
    }

    auto pos = std::find(data.begin(), data.end(), "String 3");

    std::cout << pos-data.begin();

    return 0;
}

至少当我运行它时,它似乎找到了字符串(它打印出来3)。

于 2012-12-19T07:39:01.753 回答