stanlee Δημοσ. 22 Απριλίου 2008 Δημοσ. 22 Απριλίου 2008 Καλησπέρα σε όλους. Έχω δηλώσει ένα string πχ str ="&A#3&B#1&C#2&A#3&Β#1&Α#3.." και μία κλάση class SigRep { string S_; int freq_; vector<int> positions_; } όπου S_ θα παίρνει τις τιμές που βρίσκονται μέσα στα "&" του str όπου freq_ είναι ο ακέραιος αριθμός της συχνότητας που εμφανίζεται το S_ μέσα στο str όπου positions_ θα είναι η θέσεις μέσα στο string που εμφανίζεται. πχ για το παραπάνω παράδειγμα για το Α#3 S_ = A#3 freq_ = 3 positions_[1] = 1 positions_[2] = 4 positions_[3] = 6 ενώ για το B#1 S_ = Β#1 freq_ = 2 positions_[1] = 2 positions_[2] = 5 Ένα παράδειγμα του κώδικα που χρησιμοποιώ... > Έχω κάνει την εξής συνάρτηση vector<SigRep> Find_RP1( string S ) { vector<SigRep> RP1; //RP1.clear(); int p = 0; for ( int i = 0; i <= S.length()/4; i += 4 ) { for ( int j = 0; j <= RP1.size()+1; j++ ) { cout << RP1[ j ].note << endl; if ( !RP1[ j ].note.find(S.substr( i , 4 )) ) { RP1[ j ].note = S.substr( i , 4 ); cout << RP1[ j ].note << endl; cout << endl; } else { cout << "RP1 found" << endl; } }//for j } return RP1; } και η main μου είναι κάπως έτσι int main(int argc, char* argv[]) { vector<SigRep> RP1; SRP rp1; string s1; int n; s1 ="str ="&A#3&B#1&C#2&A#3&Β#1&Α#3"; n = s1.length()/4; for (int i = 0; i <= n; i += 4 ) { for(int j = 0; i <= RP1.size(); j++ ) { if ( rp1.note != s1.substr(i , 4) ) { rp1.note = s1.substr(i , 4); cout << rp1.note << endl; RP1.push_back(rp1); } } } system ("PAUSE"); } τι κάνω λάθος;γίνεται με αυτόν τον τρόπο; δουλεύω σωστά την SigRep με τα vectrors? Μπορεί κάποιος να με βοηθήσει γιατί έχω ψιλομπερδευτεί; Ευχαριστώ για τον χρόνο σας.
m1cRo Δημοσ. 22 Απριλίου 2008 Δημοσ. 22 Απριλίου 2008 Καλησπέρα σε όλους. Έχω δηλώσει ένα string πχ str ="&A#3&B#1&C#2&A#3&Β#1&Α#3.." και μία κλάσηclass SigRep { string S_; int freq_; vector<int> positions_; } όπου S_ θα παίρνει τις τιμές που βρίσκονται μέσα στα "&" του str όπου freq_ είναι ο ακέραιος αριθμός της συχνότητας που εμφανίζεται το S_ μέσα στο str όπου positions_ θα είναι η θέσεις μέσα στο string που εμφανίζεται. πχ για το παραπάνω παράδειγμα για το Α#3 S_ = A#3 freq_ = 3 positions_[1] = 1 positions_[2] = 4 positions_[3] = 6 ενώ για το B#1 S_ = Β#1 freq_ = 2 positions_[1] = 2 positions_[2] = 5 Ένα παράδειγμα του κώδικα που χρησιμοποιώ... > Έχω κάνει την εξής συνάρτηση vector<SigRep> Find_RP1( string S ) { vector<SigRep> RP1; //RP1.clear(); int p = 0; for ( int i = 0; i <= S.length()/4; i += 4 ) { for ( int j = 0; j <= RP1.size()+1; j++ ) { cout << RP1[ j ].note << endl; if ( !RP1[ j ].note.find(S.substr( i , 4 )) ) { RP1[ j ].note = S.substr( i , 4 ); cout << RP1[ j ].note << endl; cout << endl; } else { cout << "RP1 found" << endl; } }//for j } return RP1; } και η main μου είναι κάπως έτσι int main(int argc, char* argv[]) { vector<SigRep> RP1; SRP rp1; string s1; int n; s1 ="str ="&A#3&B#1&C#2&A#3&Β#1&Α#3"; n = s1.length()/4; for (int i = 0; i <= n; i += 4 ) { for(int j = 0; i <= RP1.size(); j++ ) { if ( rp1.note != s1.substr(i , 4) ) { rp1.note = s1.substr(i , 4); cout << rp1.note << endl; RP1.push_back(rp1); } } } system ("PAUSE"); } τι κάνω λάθος;γίνεται με αυτόν τον τρόπο; δουλεύω σωστά την SigRep με τα vectrors? Μπορεί κάποιος να με βοηθήσει γιατί έχω ψιλομπερδευτεί; Ευχαριστώ για τον χρόνο σας. > vector<int> list; vector<int>::iterator nextItem; for(nextItem=list.begin();nextItem!=list.end;nextItem++){ cout<<nextItem //<- edw analoga me ton compiler } gia ton c++ builder cout<<*nextItem._Myptr; gia ton g++ cout<<nextItem;
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.