创建一个带有限制的数字数据类型,一个介于 -10 和 10 之间的整数
Creating a digit Datatype with restriction, an int between -10 and 10
>我的应用程序中确实需要一个新的数据类型,它只会存储从-10到10的数字。有没有办法创建具有特定值的数据类型,如果值无效,则会引发错误?我使用过:
typedef int digit;
发生的事情是创建了一个实际上是 int 的新数据类型。我也试过这个:
typedef int{-10 > int value < 10} digit;
但它提出了这个:
exit status 1
main.cpp:3:12: error: expected unqualified-id before '{' token
typedef int{-10 > int value < 10} digit;
^
main.cpp:3:35: error: 'digit' does not name a type; did you mean 'div_t'?
typedef int{-10 > int value < 10} digit;
^~~~~
div_t
C++没有
这样的功能。在某些情况下会很好,但用语言提供并不平凡(在某种程度上使用效率低下)。
您可以创建一个类来包装int
并执行自己的边界检查(或者您希望类型的行为方式)。然后,您还必须包装所有算术运算。不是太繁重,但脖子有点疼。而且,同样,效率不高(每个算术运算都需要一个分支!
通常,我们只使用int
,并在需要时在更高级别检查代码逻辑。在不知道您的用例的情况下,我无法提出具体建议。
下面是一个示例,可以完成其中的一半。
相关文章:
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 使用.find函数在c++中查找字符和另一个字符之间的大小
- 试图创建一个多线程程序来查找0-100000000之间的总素数
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 将向量之间的数字放在另一个向量之间<vector>>如果两个数字的差值为 1
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 在 C++11 中利用 int*_t、int_fast*_t 和 int_least*_t 之间的差异的一个很好的例子是
- C++:在另外两个对象之间共享一个对象
- r-在Rcpp和C++之间转换矢量(使用Rcpp::as或Rcpp:::wrap)是否会创建一个新的矢量并复制元素
- C++显示两个区间之间的数字的程序检查一个数字是否可以表示为两个素数的总和
- 在由邻接列表表示的树中查找节点到另一个给定节点之间的路径
- window.display() 单独在显示的最后一个缓冲区和当前缓冲区之间切换
- 添加一个节点,并在通用树中的两个给定节点之间找到路径成本,其中c 中的儿童列表
- Visual C++ 和 gcc 之间从 std::isblank 返回不一致.哪一个错了
- C++在对象的多个实例之间共享一个变量
- 对于初学者来说,我应该学习" c or c++ "之间的哪一个才能使用Arduino UNO?
- eigen如何在零和一个之间重新分布矩阵值
- 在[0,1)C 之间生成一个随机数
- 连接类实例和另一个类实例中的对话框之间的槽和信号