gpt4 book ai didi

c++ - 我们如何打印出 C++ STL 容器的 value_type?

转载 作者:IT老高 更新时间:2023-10-28 22:35:38 27 4
gpt4 key购买 nike

我知道 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com