Я бы хотел, чтобы мой код на 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