2012-12-19 15 views
1

我有一個char* t,我想在一個字符串向量中找到它。 例如,char *t指向​​,並且我的矢量與string具有相同的​​。如何查找字符串向量中的char *

+0

你知道正則表達式嗎?或'std :: string'的[查找函數](http://es.cppreference.com/w/cpp/string/basic_string)? –

+0

你的意思是「char」的矢量嗎? –

回答

3

使用std::find - 它會隱含地將char*轉換爲std::string

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

如果元素不是在載體中,然後foundIterator將等於vec.end()

+0

感謝您的回覆。我試着去做,但由於某種原因,它沒有找到向量中的char *。也許我用它錯了? std :: find(v.begin(),v.end(),temp)!= v.end() – kande

+2

@kande除非您向我們展示一些代碼,否則無法分辨。 –

+1

'if(std :: find(v.begin(),v.end(),t)!= v.end())' – kande

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 )。

相關問題