1

char* t文字列のベクトルで見つけたいという、があります。たとえば、をchar *t指すと"abc"、私のベクトルは。と同じ"abc"です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 に答える