简体   繁体   English

成员函数中的迭代器问题

[英]Issue with iterator in a member function

#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;
...

Now, if i want to iterate "links" vector.. i've developed method "iterateVector()" into .cpp file like that:现在,如果我想迭代“链接”向量..我已经开发了方法“iterateVector()”到.cpp文件中,如下所示:

#include "User.hpp"
#include <iostream>

User::User(){

}

void User::iterateVector() const{
for (vector<Associazione>::iterator it = links.begin(); it != 
     links.end(); ++it){
}

but compiler returns me an error:但编译器给我一个错误:

No viable conversion from '__wrap_iter std::__1::vector Associazione, std::__1::allocator Associazione ::const_pointer' to '__wrap_iter没有从 '__wrap_iter std::__1::vector Associazione, std::__1::allocator Associazione ::const_pointer' 到 '__wrap_iter' 的可行转换

Can someone help me?..有人能帮我吗?..

This这个

void User::iterateVector() const{
for (vector<Associazione>::iterator it = links.begin(); it != 
     links.end(); ++it){
}

should be应该

void User::iterateVector() const{
for (vector<Associazione>::const_iterator it = links.begin(); it != 
     links.end(); ++it){
}

because User::iterateVector() is const member function promising not to change any members.因为 User::iterateVector() 是 const 成员函数,承诺不更改任何成员。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM