在各种函数中使用push_back更新类对象的向量

2023-12-13

我有一个通过读取数据文件在 main 中创建的类对象向量。然后,我将向量传递到几个不同的文件,其中包含对向量执行不同操作的函数(按不同字段排序、减去库存等)。当我尝试使用时遇到问题push_back在创建矢量后将其添加到另一个文件(同一项目的一部分)中。预先存在的向量被传递给函数,并且向量被成功添加到函数内,但是当我退出函数时,添加的记录不再存在,并且据我所知,我应该访问更新的记录从不同文件中的所有不同函数向前的向量,对吗?如果更新后的向量与我在 main 中创建的向量同名,我就不必将其传回,不是吗?我确信我使用的语言和术语是错误的(请随时纠正我),但这几乎就像矢量没有全局更新,而只是在调用期间在函数内进行本地更新。

这是我要添加到向量的函数中的函数定义和代码(为了简洁起见,我跳过了所有变量参数分配)。我指向的所有函数都是类中的 setter 函数,在此之前向量已经包含 20 条记录,并且设置与以下函数类似。

void addBook(vector<BookData> books)
{
    BookData *books1;
    books1 = new BookData;
    books1->setTitle(bookTitle);
    books1->setAuthor(author);
    books1->setPub(publisher);
    books1->setIsbn(isbn);
    books1->setWholesale(wholesale);
    books1->setRetail(retail);
    books1->setQty(qtyOnHand);
    books1->setDateAdded(dateAdded);
    books.push_back(*books1);
}

我不想在帖子中充斥太多代码,但如果有帮助的话我可以发布更多代码。我只是希望在整个程序中可以访问添加(或在另一个函数中进行的删除)。


您应该通过引用传递向量来修改原始全局向量。

void addBook(vector<BookData>& books)
                            ^^^

否则,您将原始向量的副本传递给函数并修改它而不是全局版本。

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

在各种函数中使用push_back更新类对象的向量 的相关文章

  • 通过 SocketCAN 进行 boost::asio

    我正在考虑利用升压阿西奥 http www boost org doc libs 1 49 0 doc html boost asio html从a读取数据套接字CAN http en wikipedia org wiki SocketCA
  • 在 C/C++ 中获得正模数的最快方法

    通常在我的内部循环中 我需要以 环绕 方式索引数组 因此 例如 如果数组大小为 100 并且我的代码要求元素 2 则应该给它元素 98 高级语言 例如 Python 可以简单地使用my array index array size 但由于某
  • 有没有快速创建集合的方法?

    目前我正在创建一个像这样的新集 std set a s s insert a1 s insert a2 s insert a3 s insert a10 有没有办法创建s在一行 int myints 10 20 30 40 50 std s
  • 在实体框架拦截器中向 DbScanExpression 添加内部联接

    我正在尝试使用实体框架 CommandTree 拦截器通过 DbContext 向每个查询添加过滤器 为了简单起见 我有两个表 一个称为 User 有两列 UserId 和 EmailAddress 另一个称为 TenantUser 有两列
  • VS 程序在调试模式下崩溃,但在发布模式下不崩溃?

    我正在 VS 2012 中运行以下程序来尝试 Thrust 函数查找 include cuda runtime h include device launch parameters h include
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman
  • 为什么这个没有特殊字符的正则表达式会匹配更长的字符串?

    我正在使用此方法来尝试查找匹配项 例如 Regex Match A2 TS OIL TS OIL RegexOptions IgnoreCase Success 我得到了真实的结果 我很困惑 我认为这应该返回 false 因为模式中没有特殊
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • fprintf() 线程安全吗?

    我正在为野人就餐问题的某些变量编写一个 C 解决方案 现在 我创建线程 每个线程都将 FILE 获取到同一个调试文件 在线程内我正在使用 fprintf 进行一些打印 打印的语句不受任何类型的互斥锁等保护 我没有在调试文件中观察到任何交错行
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 从 WebBrowser 控件 C# 获取滚动值

    我试图在 WebBrowser 控件中获取网页的 Y 滚动索引 但无法访问内置滚动条的值 有任何想法吗 对于标准模式下的 IE 使用文档类型 正如你所说 scrollTop是的财产元素 而不是 HtmlDocument htmlDoc th
  • Visual Studio Code:如何配置 includePath 以获得更好的 IntelliSense 结果

    我是使用 Visual Studio Code 的完全初学者 我不知道我在做什么 我已经四处搜索 也许还不够 但我找不到像我这样的人如何配置的简单解释c cpp properties json每当我单击带有绿色波浪线下划线的行旁边的黄色灯泡
  • 检查 RoutedEvent 是否有任何处理程序

    我有一个自定义 Button 类 当单击它时 打开特定窗口 它总是执行相同的操作 我添加了一个可以在按钮的 XAML 中分配的 Click 事件 就像常规按钮一样 当它被单击时 我想执行 Click 事件处理程序 如果已分配 否则我想执行默
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • 用于多个窗口的 Tkinter 示例代码,为什么按钮无法正确加载?

    我正在编写一个程序 应该 按一下按钮即可打开一个窗口 按另一个按钮关闭新打开的窗口 我使用类 以便稍后可以将代码插入到更大的程序中 但是 我无法正确加载按钮 import tkinter as tk class Demo1 tk Frame
  • 如何在c的case语句中使用省略号?

    CASE expr no commas ELLIPSIS expr no commas 我在c的语法规则中看到了这样的规则 但是当我尝试重现它时 int test float i switch i case 1 3 printf hi 它失
  • 如何在 DropDownList 中保留空格 - ASP.net MVC Razor 视图

    我在视图中通过以下方式绑定我的模型 问题是我的项目文本是格式化文本 单词之间有空格 如下所示 123 First 234 00 123 AnotherItem 234 00 123 Second 234 00 我想保留此项目文本中的空格 即
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • 更改会话中的 tempdir() (更新 R_TempDir)

    我正在寻找一种方法来改变tempdir R 会话开始后的位置 我认为需要更新C级全局变量R TempDir 从 R 内部完成此操作的好方法是什么 更新 西蒙 厄本内克斯unix 工具包有一个函数可以完成这个任务 代码如下 以供将来参考 se
  • Spring Boot 提供被安全阻止的静态内容

    我启动了 Spring Boot Angular 应用程序 现在我想将整个应用程序部署为 jar 所以我创建了 Maven 配置 其中构建了 Angular 应用程序 然后将其复制到 target classes resources 但每个
  • 最小成本的动态规划问题[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我有一个手机信号塔问题 有n个城镇 我们想在一些城镇建造手机信号塔 每个蜂窝塔都可以覆盖自己及其邻居 每个城镇都有建造手机信号塔的费用 我们想找出建造覆盖所有城镇的手机信号塔的最低成
  • 如何在 Hyperledger Composer 查询中显示交易输入数据

    我正在尝试构建一个历史查询 它允许我查看交易 及其原始输入 我正在尝试基于这个问题的想法https github com hyperledger composer issues 1850 但这已在 Composer Playground 中
  • A a() 是什么意思? [复制]

    这个问题在这里已经有答案了 考虑这段代码 include
  • 角度材质对话框显示两次

    我使用 Leaflet 绘制地图 并尝试使用 Angular Material 来显示一些模态 但遇到了问题 模态 ModalComponent 应该在用户单击地图时打开 我为此添加了单击事件 请参阅MapComponent 在这个事件中
  • 将py文件转换为exe,找不到现有的PyQt5插件目录

    我对 phyton 很陌生 刚刚完成了我的第一个应用程序 现在 我正在尝试将我的 py 文件编译为似乎不起作用的 exe 购买 我到处寻找解决我问题的方法 但似乎找不到 当我运行此命令时 pyinstaller gui py 显示此错误 4
  • MPMediaItem - MPMediaItemArtwork 的 NSCoding 问题

    因此 MPMediaItem 符合 NSCoding 但它包含一个指向 MPMediaItemArtwork 的指针 该指针不符合 NSCoding 因此 如果我尝试存档 MPMediaItem 如果该项目中有一些艺术品 则它将无法取消存档
  • 如何在C#中调用C++ DLL

    我用 dev C 编写了一个 DLL 该DLL的名称是 DllMain dll 它包含两个函数 HelloWorld and ShowMe 头文件如下所示 DLLIMPORT void HelloWorld DLLIMPORT void S
  • Javascript 对象打印为对象对象

    我对节点和 mongo db 都非常陌生 我正在创建从节点到 Mongo 的连接并尝试 CRUD 操作 我的操作在 Operations js 中定义 并且我从索引调用函数 我面临的问题是当我打印回调参数时 coll find toarra
  • NumPy 数学函数比 Python 更快吗?

    我有一个由基本数学函数 abs cosh sinh exp 组合定义的函数 我想知道使用它是否会产生影响 速度 例如 numpy abs 代替abs 以下是计时结果 lebigot weinberg python m timeit abs
  • pdfmake 中未显示页脚

    我有以下代码 可在单击 pdf 时生成数据表 pdf 在自定义功能中 我有一个页脚代码 应该显示页码 document ready function SHOW EXSITING LINE ITEMS var id Model Order I
  • 如何将 Visual Studio 项目作为安装程序发布/部署

    我刚刚为一家公司开发了一个系统 它将用于 50 多台 PC 剩下的唯一问题是安装过程 我认为手动复制项目的整个文件夹效率不高 例如在 Documents 文件夹中 并在每台 PC 上创建 exe 文件的桌面快捷方式 如果可以的话我想压缩一下
  • 使用 C++20 中派生的“使用”CRTP

    我正在尝试了解 CRTP 和 C 20 基本上 我想要拥有可以访问派生类型的静态继承typedefs and using template
  • 有什么方法可以“提交” Redux 中的状态以释放内存吗?

    我正在尝试实时多人游戏我在服务器和客户端上都使用 Redux 来存储应用程序的状态 但是 由于我的游戏是实时的 因此发送到商店的操作量明显高于通常的应用程序 我怀疑这就是 Redux 使用大量内存的原因 据我了解 Redux 将所有分派到内
  • Referrer 策略隐藏自签名证书的 Referrer

    我似乎无法通过自签名证书向开发服务器发出第 3 方 XHR 请求的引荐来源网址 在遵守 Chrome 使用 SAN 而不是 CN 并注册我的自签名本地主机证书后 我在开发工具安全面板中获得了此请求的绿点 但我还得到了以下信息 This re
  • 为什么这个TStreamAdapter没有被释放?

    比较这两个片段 d as IPersistStream Save TStreamAdapter Create TFileStream Create test bin fmCreate soOwned true d as IPersistSt
  • DOMDocument->saveHTML() 将 转换为空格

    在我的代码中 我有 document DomDocument gt loadHTML someHTML xPath new DOMXPath document do some xpath query and processing resul
  • 如何在 WPF 中扩展样式

    我将默认按钮设置为如下所示
  • 在各种函数中使用push_back更新类对象的向量

    我有一个通过读取数据文件在 main 中创建的类对象向量 然后 我将向量传递到几个不同的文件 其中包含对向量执行不同操作的函数 按不同字段排序 减去库存等 当我尝试使用时遇到问题push back在创建矢量后将其添加到另一个文件 同一项目的