我想我的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();
}
};
是的,這很好 – skirkpatrick
爲什麼不像'const map&getFollowers()const'這樣的函數可以訪問數據,但不能改變它。它更方便,因爲迭代器不能完全控制。另外,對於許多算法,還需要結束迭代器。所以我建議你不要使用這樣的封裝 –
Spo1ler
@MatthieuM。謝謝 – Spo1ler