另一种复制算法

2024-01-29

我有两个向量。

vector<Object> objects;
vector<string> names;

这两个向量已填充并且具有相同的大小。 我需要一些对对象变量进行赋值的算法。它可以使用 boost::lambda。 比方说:

some_algoritm(objects.begin(), objects.end(), names.begin(), bind(&Object::Name, _1) = _2);

有什么建议吗?


我认为你想要std::for_each因为每个Object实例正在就地修改:

std::vector<std::string>::const_iterator names_it = static_cast<const std::vector<std::string>&>(names).begin();

std::for_each(objects.begin(), objects.end(),
              boost::lambda::bind(&Object::Name, boost::lambda::_1) = *boost::lambda::var(names_it)++);

这是一个完整的、可编译的示例:

#include <algorithm>
#include <cstdlib>
#include <iostream>
#include <string>
#include <vector>
#include <boost/lambda/bind.hpp>
#include <boost/lambda/lambda.hpp>

class Object
{
public:
    std::string Name;

    Object(const std::string& Name_ = "")
        : Name(Name_)
    {
    }
};

int main()
{
    std::vector<Object> objects(3, Object());
    std::vector<std::string> names;
    names.push_back("Alpha");
    names.push_back("Beta");
    names.push_back("Gamma");
    std::vector<std::string>::const_iterator names_it = static_cast<const std::vector<std::string>&>(names).begin();

    std::for_each(objects.begin(), objects.end(), boost::lambda::bind(&Object::Name, boost::lambda::_1) = *boost::lambda::var(names_it)++);

    std::vector<Object>::iterator it, end = objects.end();
    for (it = objects.begin(); it != end; ++it) {
        std::cout << it->Name << std::endl;
    }

    return EXIT_SUCCESS;
}

Outputs:



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

另一种复制算法 的相关文章

随机推荐

  • Dalvik 和 Android 工具链可以带来哪些优化?

    我正在开发一个高性能 Android 应用程序 一款游戏 虽然我首先尝试编写代码以提高可读性 但我喜欢在脑海中保留一幅幕后发生的事情的图片 通过 C 我对编译器能为我做什么和不能做什么有了相当好的直觉 我正在尝试为 Java Android
  • 使用 std::vector 调用 std::lock ()

    我想将以下代码替换为std lock for mutex m mutexes m gt lock 无论如何我可以调用std lock 在那些给定的互斥体上std vector
  • 如何在 ActiveSupport::TestCase 中存根方法

    In RSpec我可以像这样存根方法 allow company to receive foo 300 我怎样才能存根一个方法ActiveSupport TestCase 我有一个这样的测试 class CompanyTest lt Act
  • 对文件中所有奇数行求和的 Pythonic 方法

    我正在学习 Python 以便参加研究生院的编程分班测试 这实际上是我为了感受它而编写的第一个小脚本 我的背景主要是C 和PHP 但是我在测试中不能使用任何一种语言 我的测试脚本读取以下文本文件 test file1 txt 偶数行包含样本
  • 应该如何创建一个可能抛出异常的 akka actor?

    我正在将一个项目从 scala Actor 迁移到 Akka Actor 我曾经有过类似的情况 如果某个系统资源不可用 MyActor 的构造函数可能会抛出异常 var myActor MyActor null try myActor ne
  • 如何制作基本的 FullCalendar 自定义视图

    下面的代码来自 FullCalendar 的自定义视图 https fullcalendar io docs views Custom Views 文档 这似乎是一个很好的开始 但是对于像我这样的新手来说 拥有一些呈现最简单的自定义视图 带
  • 仅将最后一个 shell 命令的标准输出放入 Python 变量中[重复]

    这个问题在这里已经有答案了 prova sh 包含 bin bash echo Output that I don t want echo Output that I don t want echo Output that I don t
  • java.text.ParseException:使用 Clock.systemUTC() 时出现无法解析的日期错误[重复]

    这个问题在这里已经有答案了 我在解析日期时遇到解析错误 java text ParseException 无法解析的日期 2021 06 17T05 49 41 174Z 无法解析的日期 2021 06 17T05 49 41 174Z 我
  • 使用 dgtsv_ 或 sgtsv_ 求解 A*X = B 类型的方程

    我正在尝试求解 SWIFT 中的 A X B 类型的线性方程组 我已经能够使用基于 LU 分解的算法来做到这一点 该算法消耗 O N 2 内存 由于我的数组通常很大 10000 个样本或更多 因此我正在研究 LAPACK 它具有一些特定于三
  • 登录 OS X,验证 iOS 和 OSStatus -9809

    我正在使用苹果的安全框架 https developer apple com library mac documentation Security Reference SecurityFrameworkReference 我能够在 OS X
  • 如何让 bash 将 stderr 重定向到 >( 命令替换)?

    我可以很好地将标准输出重定向到命令重定向 echo stdout gt 2 echo stderr gt gt rev stderr tuodts 但是当我尝试将 stderr 重定向到另一个时 它似乎通过了 stdout 通道 echo
  • Git:如何使用多个存储库?

    我有一个远程只读 git 存储库A 我已将其克隆到本地文件系统中 A定期更新 每次更新后我都会将更新的代码拉取并合并到我的系统中 我想与我的团队成员就以下文件进行协作A 为此 我创建了一个新的远程存储库B 我如何管理同步B与我的本地存储库
  • 避免在终端/cmd 上运行 FFmpeg

    I m using FFmpeg for a small project so I built a GUI basic application for video editing here is the image 一切工作正常 但我只是想
  • 如何使用 WPF 将文本换行到标签中?

    我有一个TextBox和一个标签 单击按钮后 我执行以下代码 label1 Content textbox1 Text 我的问题是 如何启用标签的文本换行 一行上可能显示太多文本 如果是这种情况 我希望它自动换行为多行 The Label控
  • 如何将 CSRF 令牌从服务器传递到客户端?

    这听起来可能是一个愚蠢的问题 我想澄清这一点 如果首先将令牌发送给客户端并且客户端发回相同的令牌 csrf 令牌如何帮助识别跨站请求 恶意客户端不会得到服务器的响应吗 如果我们在发送令牌时检查来源 那么令牌检查的事情是不是显得多余 我们如何
  • ASP.NET MVC 如何在布局中使用 Partial View?

    我需要使用部分视图在布局中渲染菜单 如果有更好的方法 请告诉我 我这样做 在布局中 if User IsInRole Admin Html Partial AdminMenu 我在控制器中这样称呼它 public ActionResult
  • 从 xarray 数据集中的某些变量中删除维度

    我有一个 xarray 数据集 其中某些变量的维度超出了必要的维度 例如 纬度 和 经度 变量也随时间变化的 3D 数据集 如何删除多余的尺寸 例如 在下面的数据集中 bar 是沿x and y轴 沿轴具有恒定值x轴 我该如何删除x尺寸来自
  • 从html标签中提取信息到pandas中

    我有一个充满 html 文件的文件夹 我试图选择正确的 html 标签 以便正确打印引文 并且我需要的输出只是出版号和标题 到目前为止 我在 SO 中各个帖子的帮助下做到了这一点 with open filename r encoding
  • 根据 Grocery CRUD 中的第三个参数设置下拉输入默认值

    下面的代码示例 function product parameter crud new grocery CRUD crud gt callback add field dropdown field name array this add f
  • 另一种复制算法

    我有两个向量 vector objects vector