如何在字符串的向量中找到char*

How to find char* in a vector of string

本文关键字:char 向量 字符串      更新时间:2023-10-16

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

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

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

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

这本身并不是一个新的答案,只是@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)。