std::set tracks unique values and answers membership questions.

Set Membership

set_membership.cpp
#include <iostream>
#include <set>
#include <string>

int main() {
    std::string role = ;

    std::set<std::string> writers{"admin", "editor"};
    bool canWrite = writers.count(role) > 0;

    std::cout << "role=" << role << std::endl;
    std::cout << "canWrite=" << canWrite << std::endl;
    std::cout << "knownRoles=" << writers.size() << std::endl;
    return 0;
}
#include <iostream>
#include <set>
#include <string>

int main() {
    std::string role = ;

    std::set<std::string> writers{"admin", "editor"};
    bool canWrite = writers.count(role) > 0;

    std::cout << "role=" << role << std::endl;
    std::cout << "canWrite=" << canWrite << std::endl;
    std::cout << "knownRoles=" << writers.size() << std::endl;
    return 0;
}
#include <iostream>
#include <set>
#include <string>

int main() {
    std::string role = ;

    std::set<std::string> writers{"admin", "editor"};
    bool canWrite = writers.count(role) > 0;

    std::cout << "role=" << role << std::endl;
    std::cout << "canWrite=" << canWrite << std::endl;
    std::cout << "knownRoles=" << writers.size() << std::endl;
    return 0;
}
set membership A set is useful when code needs to ask whether a value is present.