【发布时间】:2019-02-27 10:05:13
【问题描述】:
#ifndef User_hpp
#define User_hpp
#include <stdio.h>
#include "Account.hpp"
#include "Associazione.hpp"
#include <vector>
class User : public Account{
private:
string date;
string surname;
string address;
vector<Associazione> links;
public:
void iterateVector() const;
...
现在,如果我想迭代“链接”向量.. 我已经开发了方法“iterateVector()”到 .cpp 文件中:
#include "User.hpp"
#include <iostream>
User::User(){
}
void User::iterateVector() const{
for (vector<Associazione>::iterator it = links.begin(); it !=
links.end(); ++it){
}
但是编译器返回一个错误:
没有从 '__wrap_iter std::__1::vector Associazione, std::__1::allocator Associazione ::const_pointer' 到 '__wrap_iter' 的可行转换
有人可以帮我吗?..
【问题讨论】:
-
听起来你需要
const_iterator。 -
我从来没有用过它.. 那是什么?有什么变化?..
-
正如@πάντα 所说,使用
vector<Associazione>::const_iterator。另见What is the difference between const_iterator and iterator? 和What is the difference between const_iterator and non-const iterator in the C++ STL? -
或者更好:
for(auto link : links) { ...