c++ - 将用户价值与枚举中的价值进行比较
问题描述
任务的本质:根据用户的数据为用户选择最佳的屏幕分辨率。我需要将用户值与 ENUM 中的值进行比较并返回适当的值。例如:
enum class Resolutions {
V720_height = 720,
V720_width = 1280,
V1080_height = 1080,
V1080_width = 1920
};
int main() {
int user_height = 1200;
int user_width = 430;
// I know this does not work, just an example.
std::for_each(Resolutions.begin(), Resolutions.end(), [](Resolutions tmp) {
if (static_cast<int>(tmp) > user_height) {
std::cout << tmp << " - is better resolution\n";
}
});
}
我需要一个好主意,如何实现?
解决方案
使用枚举不是最好的方法。如果您需要命名不同的分辨率,我建议您使用 std::map 。
#include <map>
#include <string>
#include <iostream>
struct Resolution {
int height;
int width;
};
const std::map<std::string, Resolution> resolutions = {
{ "V720", {720, 1280} },
{ "V1080", {1080, 1920} }
};
int main() {
int user_height = 1200;
int user_width = 430;
for (auto& [key, value] : resolutions) {
if (value.height > user_height &&
value.width > user_width) {
std::cout << key << " - is better resolution\n";
}
}
}
推荐阅读
- entity-framework-core-2.1 - 在 EF Core 2.1.1 中配置交集表
- r - 带有缩略图的图形或绘图,例如在 RStudio 中
- javascript - 如何使用带有 Django 的所见即所得 HTML Javascript 编辑器将数据传递到数据库
- networking - 获取.cc文件中类的参数和属性
- java - 在另一个字符串中进行字符串搜索的计数器
- dart - 约束可拖动区域
- javascript - 带有换行符的 React/Momentjs 日期格式
- bash - 是否可以将剪切命令的结果发送到预定义的目录?
- parsing - EXPRESS 数据建模语言的自定义解析器
- kubernetes - Kubernetes 错误代码 403:用户匿名无法获取路径