c++20范围库,如何使条件运算符起作用?

2023-11-30

对标题表示歉意,如果我知道如何更好地表达它,那么谷歌可能已经帮助了我......

我想要一个对象 Y,它代表容器 X 的视图,这样当我迭代 Y 时,它要么是 X 的前向迭代,要么是后向迭代。我想在不复制数据的情况下执行此操作,因此新的ranges我想到了图书馆。

std::vector x{};
auto z = some_condition ? x : (x | std::views::reverse);

显然有以下类型x and (x|...)是不同的。我怎样才能使它们保持一致?

编辑:刚刚发现以下内容10年前提出的问题,我想我想找出的是,ranges现在让事情变得更容易吗?由于该解决方案仍然需要将 for 循环逻辑放入单独的函数或 lambda 中。


显然 x 和 (x|...) 的类型是不同的。我怎样才能使它们保持一致?

不。让它们保持不同的类型,只需将它们传递给不太关心某一特定类型的事物即可。

您可以将使用转移到通用 lambda 中,然后有条件地使用以下任意一个调用它:x or x | std::views::reversed

IE。代替

std::vector x{};
auto z = some_condition ? type_erase(x) : (x | std::views::reverse);
for (auto y : z) {
    /* stuff */
}
// assign some value?

you have

auto do_stuff = [](auto && z) { 
    for (auto y : z) {
        /* stuff */
    }
    // return some value?
};
std::vector x{};
some_condition ? do_stuff(x) : do_stuff(x | std::views::reversed);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++20范围库,如何使条件运算符起作用? 的相关文章

  • 在c中用以下结构填充矩阵

    我有以下结构 typedef struct arr integer int size int arr arr arr integer arr arr integer alloc arr integer int len arr arr int
  • 有没有办法为向量采用内存资源?

    我已经开始在我的项目中使用 pmr allocators 并且我已经看到使用它们带来了很多性能提升和优势 我使用的分配器与我在下面的简单示例中展示的非常相似 include
  • 哪些 iomanip 操纵器具有“粘性”?

    我最近在创建一个stringstream由于我错误地假设std setw 会影响每次插入的字符串流 直到我明确更改它 然而 插入后它总是被取消设置 With timestruct with value of Oct 7 9 04 AM st
  • 如何使用 saxon 将文档类型参数传递给 xslt?

    对于发送原子数据类型将使用类似 transformer SetParameter new QName customXml new XdmAtomicValue true 如何将 XML Node 作为参数从 C 传递给 XSLT 你能帮我么
  • 限制纬度和经度值的模数

    我有代表纬度和经度的双精度数 我可以轻松地将经度限制为 180 0 180 0 具有以下功能 double limitLon double lon return fmod lon 180 0 360 0 180 0 这是有效的 因为一端是排
  • C# 动态 Linq 变量Where 子句

    我正在按照 Scott Gu 的文章创建动态 LINQhttp weblogs asp net scottgu archive 2008 01 07 dynamic linq part 1 using the linq dynamic qu
  • 堆栈独立的C/C++蓝牙API?

    我想知道是否有适用于 Windows XP Vista 7 x86 和 x64 的堆栈独立 C C 蓝牙 api 我的目标是创建连接并通过蓝牙发送 接收一些时间关键的数据 我的研究给了我以下选择以及这项任务的缺点 用于蓝牙的 Windows
  • 实体框架 5 不清除导航属性

    我在 Entity Framework 5 中遇到了这个奇怪的问题 我在其中一个实体中有一个导航属性 我想将其设置为null 但由于某种原因 该属性只有在我第二次调用该属性时才会被清除 using var db new Entities v
  • EASTL 与 STL 相比,std::vector::operator[] 怎么会有这么大的性能差异

    根据http www open std org jtc1 sc22 wg21 docs papers 2007 n2271 html http www open std org jtc1 sc22 wg21 docs papers 2007
  • 如何从c++调用python

    我是Python新手 我尝试像这样从 C 调用 python 脚本 在 Raspberry Pi 中 std string pythonCommand python Callee py a b int res system pythonCo
  • 接口中的私有成员

    是否可以在 NET 接口中创建私有成员 我听说现在可以了 但我的 IDE 拒绝了 public interface IAnimal void SetDefaultName string name ChangeName name privat
  • tcmalloc/jemalloc 和内存池之间有什么区别(以及选择的理由)?

    tcmalloc jemalloc是改进的内存分配器 还引入了内存池以更好地分配内存 那么它们之间有什么区别以及在我的应用中如何选择它们呢 这取决于您的程序的要求 如果您的程序有更多的动态内存分配 那么您 需要从可用的分配器中选择一个内存分
  • C#中如何将委托转换为对象?

    我正在使用反射类来调用其他 dll 上的一些方法 方法的参数之一是委托类型 我想通过使用反射来调用这个方法 所以我需要将函数参数作为对象数组传递 但我找不到任何关于 如何将委托转换为对象 提前致谢 委托是一个对象 只需像平常一样创建预期的委
  • 从 Linq 的列表中选择多个字段

    在 ASP NET C 中 我有一个结构 public struct Data public int item1 public int item2 public int category id public string category
  • 通过 Nuke.Common/NuGet.CommandLine 部署 NuGet 包时如何通过 Azure Auth

    我正在尝试通过 Azure DevOps 上的 Nuke 和 CI CD 自动执行 NuGet 包更新 一切都构建得很好 但在 PushNuGet 步骤中 该过程尝试通过弹出窗口向 Azure 进行身份验证 这显然从未在 in devops
  • “sizeof”对不完整类型列表结构 C 的无效应用

    我正在尝试实现一种处理页面错误的替换算法 因此 我尝试使用 malloc 创建一个循环链表 但出现以下错误 无效的应用程序sizeof to incomplete typepageInMemory 以下是代码 typedef struct
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • 为 C++ 类播种 rand()

    我正在开发一个 C 类 它使用rand 在构造函数中 我真的希望这个班级在几乎所有方面都能照顾好自己 但我不知道在哪里播种rand 如果我播种rand 在构造函数中 每次构造我的对象类型的新实例时都会对其进行播种 因此 如果我按顺序创建 3
  • TypeScript 中 C# 类虚拟成员的等效项

    因此 在 C 中 当我创建模型类和延迟加载内容时 我会执行以下操作 public int User ID get set public int Dept ID get set 然后在我的班级稍远一点的地方 我像这样弹出我的虚拟 public
  • Android NDK - 仅用 C/C++ 编写

    有没有一种可能的方法可以使用 C C 编写整个 NDK 应用程序 而无需像 hello jni 示例项目 HelloJni java 中那样的 Java 入门 类 以某种方式创建一个 HelloJni c 来执行相同的操作 从 Androi

随机推荐

  • Pandas - DataFrame 聚合行为异常

    相关Dataframe聚合方法传递列表问题 and Pandas 无法使用聚合函数列表进行聚合 考虑这个数据框 import pandas as pd import numpy as np df pd DataFrame index ran
  • 如何使用 dill 库通过 shelve 库进行对象序列化

    我在用着PyMemoize缓存协程的库 我装饰了协程 但是当 Python 调用它时 我得到 TypeError can t pickle coroutine objects 发生这种情况是因为PyMemoize内部尝试腌制协程并将其存储在
  • 手动签署 AppSync URL 以在 Lambda 中使用会出现错误的签名错误

    在 Lambda 中 我想签署我的AppSync端点与aws signature v4以便将其用于突变 生成的 URL 似乎没问题 但当我尝试它时 它给了我以下错误 errors errorType InvalidSignatureExce
  • 如何使用 nextjs 处理获取 URL

    因此 我尝试将 nextjs 应用程序部署到 vercel 但它在代码的索引获取 URL 部分始终失败 在我的index js页面目录的文件我有以下代码 export async function getStaticProps const
  • Zend Framework:无法确定临时目录,请手动指定cache_dir

    我刚刚学习 Zend 框架 我创建了一个简单的 Zend Form 当我提交表单时 出现以下错误 An error occurred Application error Exception information Message Could
  • Xcode 4.2 中的 Guard Malloc。它在哪里?

    它在哪里 Xcode 中还有其他可用的工具吗 谢谢 现在 NDA 不再适用于 xcode 4 2 以下是包含所需步骤的屏幕截图 对于仍在寻找 Guard Malloc 的人来说 这应该会更快
  • 如何将各种类型的函数指针存储在一起?

    普通指针可以使用通用存储void e g void arr 10 arr 0 pChar arr 1 pINt arr 2 pA 不久前 我看到一个讨论 void 可能无法在所有平台 例如 64 位及更多 中存储函数指针而不丢失数据 但我不
  • 使用java插入二叉树不起作用

    我目前正在使用java学习树 我这里发生了一些错误 在二叉树中插入项目 我不明白为什么它不起作用 这是代码 树节点 public class TNode int data TNode left TNode right public TNod
  • 更新 AppWidget 上的 TextView 文本大小

    我无法弄清楚这一点 我已经为此苦苦挣扎了好几天 我已经厌倦了 我正在使用配置活动中的 Spinner 更改 AppWidget 上 TextView 的文本大小 但无法正确更新 我告诉它第一次时它不会更新 但第二次和第三次以及之后的每次都会
  • 如何测试网页是否包含某些文本

    我正在尝试检测网页是否包含某些文本 例如 我想看看是否这个网页包括以下短语 这是我的代码 我无法发现 如果那么 条件得到满足 这就是我正在尝试的 Const READYSTATE COMPLETE 4 Declare Function Se
  • 列表视图在视图翻转器内滑动

    我试图在列表视图上左右滑动并切换视图翻转器 就像 remeberthemilk 应用程序以及 Nexus One 上的默认新闻和天气应用程序一样 滑动浏览新闻主题 使用我找到的各种教程 我在 stackoverflow 上发现了一个展示如何
  • 无法通过c#删除.exe文件

    我在 Windows 窗体应用程序中有一个更新按钮 当用户单击更新按钮时 应用程序会检查应用程序的当前版本与从 Web 服务获取的服务器中的可用版本 如果版本不匹配 应用程序将从Web服务获取的路径下载新版本 我目前在同一解决方案中使用两个
  • 运行jsp文件时出现错误

    我在 eclipse juno 中创建了一个简单的 Hello jsp 程序 当我尝试通过在服务器上运行来运行此 jsp 文件时 出现以下错误 出现问题 在本地主机上发布到 Tomcat v6 0 服务器 遇到了问题 发布失败并出现多个错误
  • 使用 pandas python 的 SuperTrend 代码

    我正在尝试使用 pandas 在 python 中为 SuperTrend 指标编写以下算法 BASIC UPPERBAND HIGH LOW 2 Multiplier ATR BASIC LOWERBAND HIGH LOW 2 Mult
  • 尝试将内联 UIDatePicker 添加到 UITableViewCell

    我正在尝试在 TableView 单元格内创建一个内联 DatePicker 类似于this and this所以线程 我使用下面的方法创建日期选择器 该方法在加载视图时调用 void createDatePicker datePicker
  • 在 sql 查询中使用数组/变量

    我确信有办法做到这一点 但我不知道了 我有一张包含所有数据的大表 In the table I包含以下信息的行 columnA1 groupName columnA2 groupID ColumnB3 name columnB4 group
  • Tomcat 8 中的 SSL:服务器和客户端 JKS + 客户端公共 cer

    我按照本指南使用 SSL 层设置 Tomcat 8 实例 生成客户端和服务器密钥库以及自动签名的公共客户端证书 我想问题是我真的不知道如何配置 Tomcat 的连接器 这是我当前的 server xml 文件 删除了不必要的注释
  • 在 Django 中序列化一棵树

    有没有简单的方法来序列化由模型给出的树 例如下面所示的类别 我想得到一个 json 对象 例如 name cat1 children name cat11 children Thanks class Category MPTTModel n
  • 如何使用 mallet 获得单词主题概率

    我使用 mallet 制作了一个并行主题模型 我想获得每个文档的热门词 为此 我试图获取单词主题概率矩阵 我将如何实现这一目标 当您使用 MALLET 构建主题时 您有一个选项称为 word topic counts file 当您提供此选
  • c++20范围库,如何使条件运算符起作用?

    对标题表示歉意 如果我知道如何更好地表达它 那么谷歌可能已经帮助了我 我想要一个对象 Y 它代表容器 X 的视图 这样当我迭代 Y 时 它要么是 X 的前向迭代 要么是后向迭代 我想在不复制数据的情况下执行此操作 因此新的ranges我想到