gpt4 book ai didi

c++ - 我可以以这种方式返回迭代器吗?

转载 作者:行者123 更新时间:2023-11-30 02:04:05 25 4
gpt4 key购买 nike

我希望我的 C++ 代码尽可能地封装,这种返回迭代器的方式可以吗?

const map<string,bool>::iterator getFollowers() {

return followers.begin();

}

const map<string,bool>::iterator getFollowing() {

return following.begin();

}

完整代码:

#ifndef twitClient_twitUser_h
#define twitClient_twitUser_h

#include <map>
#include <iostream>
#include <string>

using namespace std;
class user {
string username;
map<string,bool> followers;
map<string,bool> following;
string name;


public:

user(string username):username(username) {
followers [username] = false;
following [username] = false;
}

bool removeFollower (string friendName);
bool addFollower(string friendName);
bool stopFollowing(string friendName);
bool startFollowing(string friendName);

const map<string,bool>::iterator getFollowers() {

return followers.begin();

}

const map<string,bool>::iterator getFollowing() {

return following.begin();

}


};

最佳答案

你的方法没有错,除了你可能还想添加常量访问方法,例如

map<string,bool>::const_iterator getFollowers() const;

此外,您还想添加对 end() 的访问权限迭代器也是如此。

关于封装,你封装了 map ,但是你的客户端暴露给了map<string, bool>::iterator .有一篇关于隐藏这些依赖项的非常有趣的文章 here .这绝不是微不足道的,但仍然值得考虑。

关于c++ - 我可以以这种方式返回迭代器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11065368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com