Строковых перечислений нет, но для сопоставления одного значения другому можно использовать std::map
, который является стандартным шаблоном, поставляемым с платформами C ++:
#include <map>
#include <string>
int main() {
using std::map; using std::string;
map<string, string> ss;
ss["abs"] = "Absolute";
const string foo = ss["abs"];
std::cout << ss["abs"] << ", or " << foo << std::endl;
}
В C ++ 0x, если вы хотите «безопасный» доступ, который выдает исключение, если тип ключа не найден, используйте map::at
(на самом деле, отсутствие map::at
было просто упущением в текущий стандарт):
std::cout << ss.at("weird keY");
или проверьте, существует ли он:
if (ss.find("weird keY")==ss.end())
std::cout << "key not found\n";