2012-05-09 4 views
9

Sto cercando di vedere se il vettore v1 è all'interno del vettore v2. I miei vettori sono ordinati e si richiede che l'ordine venga conservato.Ricerca di un vettore STL C++ all'interno di un vettore STL

Ad esempio, se v1 = (a, b) e v2 = (e, f, a, b), desidero ottenere un iteratore punta a un in v2.

Trova STL trova solo un oggetto all'interno di un vettore. Immagino che quello che voglio sia qualcosa di simile a string :: find.

Esiste una funzione in AWL per fare ciò?

+0

Quando dici che i tuoi vettori sono ordinati, intendi che sono ordinati secondo alcuni criteri in modo da poter confrontare un elemento con un altro per determinare quale viene per primo? O vuoi dire che li hai impostati in un ordine specifico che non può essere derivato semplicemente guardando gli elementi e confrontandoli, ma dipende da qualcosa al di fuori? –

+1

[std :: includes] (http://en.cppreference.com/w/cpp/algorithm/includes) può aiutare, ma non si sa quale ordine viene utilizzato nel tuo caso. –

+1

Per ordinamento intendo che ho usato il vettore STL per modellare una lista ordinata che non può essere derivata semplicemente osservando gli elementi e confrontandoli. Devo scoprire se i membri di v1 sono apparsi nella v2 nello stesso ordine. Non riesco a ordinare il vettore. Proprio come non si ordina una stringa quando la si cerca per il verificarsi di un'altra stringa. – Ari

risposta

13

Sembra che si desideri cercare una sottosequenza all'interno di un'altra sequenza. Puoi farlo con std::search dalla Libreria standard.

+0

Grazie, penso che questo è quello che stavo cercando! – Ari