vector auswerten
-
Ich habe ein Problem.
Ich möchte mehrere Wöerter in einen vector einlesen und anschliessend jedes einzelne element auswerten.Hier ist das bis jetzt geschrieben programm:
#include "stdafx.h"
#include <string>
#include <iostream>
#include <vector>
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{cout<<"Bitte geben sie einen text ein:"<<endl;
vector <string> str;
string x;
while(cin>>x){
str.push_back(x);
}int a_counter=0, c_counter=0; //Nach a und c suchen
int j=0;
for (int i=0; i<str.size(); ++i) {Hier soll jedes einzelne element nach a und c durchsucht werden und anschliesend soll das programm ausgeben oder das element mehr a oder c hat.
Wie mache ich das????
+Danke für die Hilfe.
MfG Erich
-
Hallo,
Erstmal machen wir deinen obigen Code-Snipsel portabel. Sprich wir formen in zu einem standard-C++ konformen Code um. Auf gehts:// #include "stdafx.h" // brauchst du im gezeigten Snippet nicht. #include <string> #include <iostream> #include <vector> using namespace std; int main() // weg mit int _tmain(int argc, _TCHAR* argv[]) ;) { cout<<"Bitte geben sie einen text ein:"<<endl; vector <string> str; string x; while(cin>>x){ str.push_back(x); } // Um das Zählen kümmern wir uns später. /* int a_counter=0, c_counter=0; //Nach a und c suchen int j=0; for (int i=0; i<str.size(); ++i) {*/ }Nun bauen wir mit Hilfe des Algorithmus count() eine nette Funktion, die die Anzahl der Vorkommen eines Zeichens in einem Container, bestehend aus Zeichenketten, zurückgibt:
template<class T> size_t count_char(const T& container, int search_for) { size_t result = 0; for(typename T::const_iterator it = container.begin(); it != container.end(); ++it) result += count(it->begin(), it->end(), search_for); // nach dem Wert search_for in jedem container suchen... return result; }Fertig. Den Rest kriegst du alleine hin, oder?

Gruß Caipi
-
Nicht so richtig.
Wäre super wenn du mir noch ein bisschen weiter hilfst.
Danke :xmas1:
-
Wieviel zahlst du?
-
Wo hapert es denn? Die oben angegebene Funktion zählt dir jeweils das Zeichen "search_for" im Container "container" (zweidimensionale Struktur - für deine Anwendung ist T = vector<string>). Die mußt du nur noch auf deinen Vektor anwenden, um die 'a' bzw. 'c' zu zählen und anschließend die zurückgegebenen Werte vergleichen.
(@Caipi: Ich hätte der Funktion noch einen zweiten Template-Parameter spendiert ;))
-
wo muss ich das temlate<class T> eibauen und wie muss ich es für meine anwendung umschreiben?
Wo kommt das T = vector<string> hin???
Danke