Ich habe eine Klasse (foo), die einen Vektor enthält.
Wenn ich versuche, Iteration über die Elemente in den Vektor wie so:
for(vector<random>::iterator it = foo.getVector().begin();
it != foo.getVector().end(); ++it) {
cout << (*it) << endl;
}
Das erste Element ist immer beschädigt und liefert Datenmüll.
Allerdings, wenn etwas tun, wie:
vector<random> v = foo.getVector();
for(vector<random>::iterator it = v.begin();
it != v.end(); ++it) {
cout << (*it) << endl;
}
Alles scheint gut zu funktionieren. Gibt es ein "Problem", das ich nicht kenne?
Ich habe auch versucht, cout << foo.getVector()[0] << endl; außerhalb der Schleife auszuführen, aber das scheint zu funktionieren.
Gracias.
編集する。
Hier ist meine Header-Datei:
#ifndef HITS
#define HITS
#include <vector>
#include "wrappers.h"
class Hits {
public:
Hits();
std::vector<word_idx_value> getVector() {return speech_hits;}
const std::vector<word_idx_value> getVector() const {return speech_hits;}
void add(const word_idx_value&);
Hits &operator+=(const Hits&);
private:
std::vector<word_idx_value> speech_hits;
};
#endif