-1
我有以下類:爲什麼迭代器不兼容?
class Manifest {
public:
Manifest(void);
~Manifest(void);
std::vector<ManifestDirectory> get_directories() const { return directories_; }
void set_directories(std::vector<ManifestDirectory> dirs) { directories_ = dirs; }
int ReadManifest(Manifest &manifest);
private:
std::vector<ManifestDirectory> directories_;
};
及以下簡化用法:
Manifest manifest;
manifest.ReadManifest(manifest);
for (std::vector<ManifestDirectory>::iterator it = manifest.get_directories().begin(); it != manifest.get_directories().end(); ++it) {
// Do something
}
如何修改get_directories()
,所以它不會複製整個directories_
,並在for循環it
將指向相同directories_.begin ()?
現在迭代器不兼容被拋出。
返回一個引用'std :: vector&get_directories()const {return directories_; }' –
@RogerRowland也許我應該讓目錄_一個指針並修改get&set?當然,返回參考正在工作 - 謝謝。 – PawelZ
如果我不想在外面修改'directories_'並且只有'ReadManifest()'能做到'Manifest'的方法和方法? – PawelZ