我知道 STL 容器有一个 value_type
参数,并且我已经看到如何使用它来声明变量的类型,例如:
vector<int>::value_type foo;
但是我们可以将这个 value_type
打印到控制台吗?
我想在这个例子中看到“字符串”:
int main() {
vector<string> v = {"apple", "facebook", "microsoft", "google"};
cout << v << endl;
cout << v.value_type << endl;
return 0;
}
最佳答案
X::value_type
在这方面与任何其他类型别名(又名 typedef)没有什么不同——C++ 没有将类型转换为其源代码字符串表示的 native 方法(至少是因为这可能是模棱两可的)。你可以做的是使用 std::type_info::name
:
cout << typeid(decltype(v)::value_type).name() << endl;
生成的文本取决于编译器(甚至不能保证易于人类阅读)。它在程序的同一个版本中是一致的,但你不能期望它在不同的编译器中是相同的。换句话说,它对调试很有用,但不能以持久的方式可靠地使用。
关于c++ - 我们如何打印出 C++ STL 容器的 value_type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52146507/