gpt4 book ai didi

c++ - 具有自动说明符和static_cast的基于范围的for循环

转载 作者:行者123 更新时间:2023-12-01 15:05:02 25 4
gpt4 key购买 nike

想象我有一个std::vectorstd::string,并且我想在基于范围的for循环中将这些std::string转换为std::string_view:

auto v = std::vector<std::string>{"abc", "def", "ghi"};
for (std::string_view sv : v) {
// do something with string_view
}

上面的代码是完全有效的,但我想保留 auto说明符来执行此操作,如何在基于一行范围的for循环中执行 static_cast这样的操作?好像C++ 20 ranges可以简洁地做到这一点,有人可以举个例子吗?
for (auto sv : v | static_cast<std::string_view>) {
// do something with std::string_view
}

最佳答案

并不是说这是一个好主意,但这可能是一个更通用的转换概念(以及一个邪恶的lambda技巧)的有用示例:

for(auto sv : v |
views::transform([](std::string_view x) {return x;})) …

关于c++ - 具有自动说明符和static_cast的基于范围的for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59228171/

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