返回对 C++11 中复数的实数或图像值的引用的函数

2024-03-11

我正在寻找一个函数,该函数返回对 C++11 中复数的实数或图像值的引用。在 C++03 中我可以说:

complex<double> C; cin >> C.real();

但在 C++11 中,这给了我一个编译错误,因为 C.real() 返回一个值而不是引用。

我发现我可以这样写:

double t; cin >> t; C.real(t);

但这并不简单,例如,如果我想将 c 的实部乘以 2 并将其加 1 我应该说:

C.real(2*C.real() + 1);

那是不干净的。

还有其他[干净]的方法可以做到这一点吗?


如果您确实想将复数的实部和虚部的输入分开,您可以尝试 IO 操纵器方法。

#include <complex>
#include <iosfwd>

class proxy_complex {
    explicit proxy_complex(std::istream& strm, bool f)
        : strm_(&strm), flag(f) { }
    proxy_complex(const proxy_complex&) = default;

    std::istream* strm_;
    bool flag;           // flag to check whether we're writing real or imag

public:
    template<typename T>
    std::istream& operator>>(std::complex<T>& c)
    {
        T n;
        if (*strm_ >> n)
            flag ? c.real(n) : c.imag(n);
        return *strm_;
    }

    friend proxy_complex operator>>(std::istream& is, proxy_complex(*func)(std::istream&))
    {
        return func(is);
    }
    friend proxy_complex real(std::istream&);
    friend proxy_complex imag(std::istream&);
};

inline proxy_complex real(std::istream& is)
{
    return proxy_complex(is, true);
}

inline proxy_complex imag(std::istream& is)
{
    return proxy_complex(is, false);
}

您可以将上述代码放入其自己的头文件中(如果这样做,将其包装在命名空间中可能是个好主意)。

Usage:

#include <iostream>
#include "my_header.h"

int main()
{
    std::complex<double> c;
    std::cin >> real >> c >> imag >> c;
    if (std::cin) std::cout << c;
}

希望我正确地猜到了你对“干净”的定义:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

返回对 C++11 中复数的实数或图像值的引用的函数 的相关文章

  • 为什么使用数组索引循环数组比指针访问慢?

    我正在读Kochan的书 Programming in C 在第 14 页的 指针和数组 部分中 264 他说 一般来说 索引数组的过程比执行索引过程花费更多的时间 访问指针内容的过程 其实这也是主要原因之一 为什么使用指针来访问数组的元素
  • 如何转发声明要在 unique_ptr 的标准容器中使用的类

    在智能指针的标准容器中使用它时 是否可以避免完整的类定义可见 例如 我无法编译以下内容 include
  • 表达式访问者仅为某些 lambda 表达式调用 VisitParameter

    我希望能够使用嵌套扩展方法将 EF 中的实体投影到相应的视图模型 参见我之前的问题使用扩展方法在 EF 中投影单个实体 https stackoverflow com questions 39585427 projection of sin
  • 更改图像颜色与透明背景

    我需要使用 c System Drawings 将透明背景上带有绿色圆圈的图像加载到位图图像中 这是最简单的部分 但是 我需要在将其添加到更大的图像之前更改圆圈的颜色 而不影响周围的透明度 就我而言 我需要将圆圈颜色更改为黄色并将其添加为太
  • 错误:“运行所选代码生成器时出错:包恢复失败”

    我正在尝试将控制器添加到 ASP NET Core 项目中的解决方案中 当我尝试这样做时 我收到此错误 我收到相同的消息 为控制器添加最小依赖项和完整依赖项 我也有这个问题 使用实体框架添加控制器 gt 带有操作的 API 控制器 将给出
  • Monitor.Pulse & Wait - 意外行为

    http www codeproject com Articles 28785 Thread synchronization Wait and Pulse demystified http www codeproject com Artic
  • 为什么 ObservableCollection 有两个集合构造函数?

    The 可观察集合 T https msdn microsoft com en us library ms668604类有两个构造函数 可以在其中传递项目集合 一个构造函数接受一个IEnumerable T 另一个List T 鉴于List
  • 有没有办法找到dll公开的所有函数

    我一直在寻找一种方法来获取映射到 dll 中函数名称的所有字符串 我的意思是您可以调用 GetProcAddress 的所有字符串 如果你对 dll 进行十六进制转储 符号 字符串 就在那里 但我认为必须有一个系统调用来获取这些名称 如果您
  • 我如何知道向量的实际最大大小? (不使用 std::vector::max_size)

    在在线课程中 我正在学习向量 在其中一个例子中 他们解释说 std vector max size 应该给我向量可以达到的最大大小 我决定测试一下 include
  • 用 OpenCL C 编写快速线性系统求解器

    我正在编写一个 OpenCL 内核 它将涉及求解线性系统 目前我的内核太慢了 提高线性系统部分的性能似乎是一个不错的起点 我还应该注意 我并没有尝试使我的线性求解器并行 我正在研究的问题在宏观层面上已经是令人尴尬的并行 以下是我编写的 C
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件
  • Cookie 在 ASP.net 中失去价值

    我有以下设置 cookie 的代码 string locale DropDownList this LoginUser FindControl locale SelectedValue HttpCookie cookie new HttpC
  • C++ 模板参数数量错误(2,应该是 1)

    我使用 C 并行快速排序程序进行了测试 如下所示 首先使用列表作为容器 然后我转移到通用容器类型 但它报告了标题错误 可以帮忙解决这个问题吗 include
  • 从 AuthorizeAttribute 继承的属性不起作用

    我目前正在尝试根据用户角色在新的 ASP MVC 5 应用程序中实现安全性 目标是防止用户在没有特定角色 或更高角色 的情况下访问某些控制器或控制器方法 根据到目前为止我所读到的问题 我创建了一个继承 AuthorizeAttribute
  • 快速将文本附加到文本框

    我有一个BackgroundWorker正在发布消息的线程 使用BeginInvoke在 GUI 中的文本框中 方法 write debug text 在文本框中显示文本使用AppendText并将文本写入Console 外观上是这样的Ba
  • NSubstitute - 测试特定的 linq 表达式

    我在当前正在开发的 MVC 3 应用程序中使用存储库模式 我的存储库界面如下所示 public interface IRepository
  • C++ 在预处理器 #if 中对 sizeof() 比较抛出编译错误

    我有这个 它不会从 Visual Studio 编译错误 致命错误 C1017 无效的整数常量表达式 我该怎么做 template
  • 打印任何类型的数组和列表的通用方法[重复]

    这个问题在这里已经有答案了 每当我调试一段涉及整数 双精度 字符串等数组或列表的代码时 有时我更喜欢打印它们 我为此所做的是为不同类型编写重载的 printArray printList 方法 for e g 我可能有这 3 种方法来打印各
  • SMTP 客户端在 C# 应用程序中显示错误“未采取请求的操作”

    我正在尝试使用 hotmail 帐户设置电子邮件发送应用程序 代码如下所示 MailMessage mail new MailMessage from to mail Subject Proba email mail Attachments
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin

随机推荐

  • 在主模块中找不到库模块中的包

    我有一个从 Eclipse 导入到 Android Studio 的项目 在 Eclipse 中一切都运行良好 它包含一个主模块 Eclipse 中的项目 它使用库模块 Eclipse 中的库项目 中的包 由于迁移进展不顺利 我手动创建了一
  • package-info.java 包注释影响所有类,包括子包中的类

    我想在我的所有课程上应用注释 并且我正在尝试最好的方法来做到这一点 到目前为止 我坚持使用可以注释整个包的 package info java 文件 但不能注释子包中包含的类文件 除了在我的项目中添加 100 个仅包含单个注释的相同 pac
  • 应用什么算法来连续重新分配小内存块?

    在 C 程序中 我面临需要拥有大量内存块的事务 我需要知道是否有一种算法或最佳实践技术用于处理所有这些 malloc free 我使用数组来存储这些内存块 但在某些情况下指出数组本身已满并且重新分配数组只会更加浪费 处理这个问题的优雅方法是
  • 是否可以强制通过 Wifi 或 TMobile 网络进行网络流量?

    我想知道使用 G1 是否可以强制网络流量通过 Wifi 或通过 Cell GSM 网络 我需要强制应用程序通过塔式网络连接以获取一些登录信息 这可能吗 有人对这如何可能有任何想法吗 我正在尝试使用 Android SDK 在应用程序内完成此
  • D3 - 如何将圆包转换为椭圆包?

    如何利用D3圆形包布局以获得与此类似的图表 即使有更细长的椭圆 这种图表样式的关键应用是更容易放置标签 This is jsfiddle http jsfiddle net VividD WDCpq 8 这演示了我为其他目的制作的圆形包 但
  • Scala 2 将方法附加到类主体(元编程)

    我已经在这个问题上陷入了一周 但似乎没有任何进展 我正在尝试将一些方法和字段从一个类复制到另一个类 我有两个阶段参与其中 第一阶段扫描代码 找到需要复制的方法def 并保存对应的Tree 第二阶段将这棵树插入到需要的地方 为了简化这个问题
  • 在核心 ui vue.js 中的导航栏上仅在特定条件下显示特定项目

    嗨 我实际上对此很陌生 所以如果我问了一个明显的问题 我很抱歉 我实际上使用 vue js 和 coreui 制作了一个网站 问题是我在这个网站上有两种用户 管理员和联系人 我希望的是 当联系人登录时 导航栏中只能查看导航栏上的某些项目 我
  • 在生产系统中测试帐户和产品

    是否值得设计一个系统来期望测试帐户和产品在生产中存在并处于活动状态 或者是否应该不存在测试实体对生产数据库的污染 即使您的运输人员知道不运送任何寄给 测试客户 的盒子 我已经实现了在规范中具有 test True 属性的消息传递协议 并且想
  • getExtras().getSerialized() 和 getSerializedExtra() 之间的区别

    我很困惑 intent getSerializableExtra String name and intent getExtras getSerializable String key 我们可以互换使用它们吗 或者它们都有各自的特定场景 如
  • 如何强制cloudfront使用https(重定向http -> https)

    我通过 s3 cloudfront 在 aws 上托管一个静态站点 无论如何 我可以强制cloudfront将所有http请求重定向到https版本 强制 http gt https 转到cloudfront分布 选择分布 转到行为 选择一
  • crontab:正在运行 python 脚本但不执行操作系统命令

    我有这个 crontab 配置设置和以下脚本 MAILTO email protected cdn cgi l email protection 41 15 usr bin python home atweb Documents openg
  • 在 Windows 终端中启用 ANSI 序列

    我偶然发现一个有趣的问题 在 Windows 中 C gt lua gt print x1b 95mMagenta x1b 0m 95mMagenta 0m 但如果我跑os execute 即使使用空命令 在此之前 它按预期工作 C gt
  • string.format(...,**locals()) 的缩写形式

    我通常使用以下模式 如这个问题 https stackoverflow com questions 11764900 using locals and format method for strings are there any cave
  • OTRS Web 服务作为请求者测试

    我是 OTRS 3 2 的新手 也是 PERL 的新手 但我被赋予了设置 OTRS 的任务 以便它将调用我们的远程 Web 服务 以便在设置票证时可以在我们这边创建记录为 已关闭 我设置了各种动态字段 以便客户服务代表可以填写其他数据 这些
  • 解析嵌套 JSON 以检索嵌套数组值

    我试图从这个 Json 中获取一些特定的字段 我已经设法检索第一级中的内容 但我需要从数据字段中获取一些内容 我想获得以下数据字段的数组 data data artist id data artist id name and data ra
  • 如何使 OmniPascal 与 FPC 配合使用?

    我已经为 VisualStudio 代码安装了 FreePascal 编译器和 OmniPascal 扩展 但代码完成不起作用 在手册中你说我需要在用户设置中写入Delphi编译器的路径 但没有提到FPC Set the omnipasca
  • UWP MVVM:更改语言后刷新页面

    我的视图模型中有一些代码可以更改应用程序语言 然后更改某些控件上的文本 这是DashboardViewModel 仪表板页面数据上下文设置为 ApplicationLanguages PrimaryLanguageOverride lang
  • 如何清除或替换缓存的图像

    我知道有很多方法可以防止图像缓存 例如通过 META 标记 以及一些不错的技巧来确保每次页面加载时都显示图像的当前版本 例如 image jpg x timestamp 但是有没有办法真正清除或替换浏览器缓存中的图像 这样上述方法都不是必要
  • 我可以从 Firebase 云功能发送静默推送通知吗?

    是否可以从 APNs iOS 发送静默远程通知Firebase云函数 https firebase google com docs functions 如果是这样 该怎么办 我想在应用程序不在前台时将数据发送到 iOS 应用程序实例 而用户
  • 返回对 C++11 中复数的实数或图像值的引用的函数

    我正在寻找一个函数 该函数返回对 C 11 中复数的实数或图像值的引用 在 C 03 中我可以说 complex