任何数据类型均可用于将任何类型的值存储在变量中。 JavaScript,TypeScript等脚本语言可提供任何数据类型功能。
C++也提供了此功能,但仅在boost库的帮助下。通过将变量的数据类型设为任意值,可以将任何类型的值分配给变量。以下是声明具有任何数据类型的变量所需的语法:
句法:
boost::any variable_name;
注意:要使用boost :: any数据类型,必须在程序中包含“ boost / any.hpp”。
例子:
boost::any x, y, z, a;
x = 12;
y = 'G';
z = string("GeeksForGeeks");
a = 12.75;
// CPP Program to implement the boost/any library
#include "boost/any.hpp"
#include
using namespace std;
int main()
{
// declare any data type
boost::any x, y, z, a;
// give x is a integer value
x = 12;
// print the value of x
cout << boost::any_cast(x) << endl;
// give y is a char
y = 'G';
// print the value of the y
cout << boost::any_cast(y) << endl;
// give z a string
z = string("GeeksForGeeks");
// print the value of the z
cout << boost::any_cast(z) << endl;
// give a to double
a = 12.75;
// print the value of a
cout << boost::any_cast(a) << endl;
// gives an error because it can't convert int to float
try {
boost::any b = 1;
cout << boost::any_cast(b) << endl;
}
catch (boost::bad_any_cast& e) {
cout << "Exception Caught : " << e.what() << endl;
;
}
return 0;
}
输出:
12
G
GeeksForGeeks
12.75
Exception Caught : boost::bad_any_cast: failed conversion using boost::any_cast
参考: http://www.boost.org/doc/libs/1_66_0/doc/html/any.html
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。