Hi, czy std::vector posiada jakaś funkcję, która działa podobnie jak pythonowy operator in?
Pozdrawiam i dziękuję za pomoc!
0
0
zasadniczo nie zawiera. możesz emulować, wyszukując wartość w vector - ale to będzie wolne. w miarę możliwości użyj std::set albo std::map
#include <vector>
#include <set>
#include <map>
#include <algorithm>
using namespace std;
struct object { /* ... */ };
int main() {
// inicjalizacja w stylu C++0x
vector<int> a{
1,2,3,4,5,6
};
set<int> b{
1,2,3,4,5,6
};
map<int, object> c{
{ 1, object() },
{ 2, object() },
{ 3, object() },
{ 4, object() },
{ 5, object() }
};
if( a.end() != find(a.begin(), a.end(), 4)) {
// wyszukano w vector: wolne
}
if( b.end() != find(b.begin(), b.end(), 4)) {
// wyszukano w set: szybkie (miejmy nadzieję)
}
if( b.end() != b.find(4)) {
// wyszukano w set: szybkie i krótsze
}
if( c.end() != c.find(4)) {
// wyszukano w map: szybkie, pod c[4] siedzi jakiś obiekt
}
return 0;
}