Pagina 1 di 1

cercare un vettore in un vettore [C++]

Inviato: giovedì 29 maggio 2014, 12:23
da Micheal_Scofield
Sono nuovo del C++.

Vorrei cercare un vettore in un vettore com'è possibile farlo?

ho provato ad utilizzare la funzione search in questo modo:

Codice: Seleziona tutto

vector <char> dizionario;
vector<char>::iterator itDiz;
vector <char> search;
itDiz = search(dizionario.begin(), dizionario.end(), search.begin(), search.begin());
ma la funzione search mi restituisce questo errore:
Error: chiamata di un oggetto di un tipo di classe senza funzioni operatore() o di conversione appropriate da puntatore a funzione

cosa sbaglio?
grazie dell'aiuto

Re: cercare un vettore in un vettore [C++]

Inviato: giovedì 29 maggio 2014, 15:45
da vaeVictis
Ad occhio e croce (vedi il post scriptum) credo dipenda solo dall'infelice scelta del nome del vettore da "trovare", che hai chiamato nello stesso modo di una funzione della libreria algorithm, che chiami direttamente per nome perché immagino (vedi il post scriptum) tu stia usando il namespace standard.
Infatti, facendo per esempio la ricerca della *stringa* "lmn" nell'alfabeto:

Codice: Seleziona tutto

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
	char alfaArray[] = "abcdefghijklmnopqrstuvwxyz";
    vector<char> alfabeto(alfaArray, alfaArray + sizeof(alfaArray)-1);
	vector<char> toBeFound;
	vector<char>::iterator it1;
	toBeFound.push_back('l');
	toBeFound.push_back('m');
	toBeFound.push_back('n');
	it1 = search(alfabeto.begin(), alfabeto.end(), toBeFound.begin(), toBeFound.end());
	if(it1 != alfabeto.end()) {
		cout << "trovato in posizione " << (it1 - alfabeto.begin() + 1) << endl;
	} else {
		cout << "non trovato" << endl;
	}
    return 0;
}
hai:

Codice: Seleziona tutto

vaevictis@vaevictis-HAL:~/Programmazione/C++/RicercaDiVettoreInUnVettore$ g++ -Wall -pedantic -o RicercaDiVettoreInUnVettore RicercaDiVettoreInUnVettore.cpp 
vaevictis@vaevictis-HAL:~/Programmazione/C++/RicercaDiVettoreInUnVettore$ ./RicercaDiVettoreInUnVettore 
trovato in posizione 12

p.s.:
In futuro, quando posti un esempio di codice, cerca di rendere la vita semplice a chi vuole aiutarti, postando le librerie che usi e "tutto il resto" (ovvero un codice minimale che riproduca il problema in modo comprensibile).
Qui non si vedono le librerie che usi... e i vector sono vuoti :D

[Risolto] Cercare un vettore in un vettore [C++]

Inviato: giovedì 29 maggio 2014, 18:24
da Micheal_Scofield
il problema era proprio nella mancanza della libreria algorithm.
scusate la perdita di tempo e vi ringrazio molto!

Re: [Risolto] Cercare un vettore in un vettore [C++]

Inviato: giovedì 29 maggio 2014, 18:36
da vaeVictis
Il miglior ringraziamento è un [Risolto] nel titolo del primo messaggio della discussione :)
:ciao:

Re: cercare un vettore in un vettore [C++]

Inviato: giovedì 29 maggio 2014, 18:41
da vaeVictis
p.s.:
Il [Risolto] va nel titolo del primo messaggio della discussione :)