交换结构体数组中的元素

2023-12-28

假设我有这个结构:

struct MyStruct {
  int iID;
  int iMyNumber;
};

然后我定义一个 MyStructs 数组:

struct MyStruct msTest[3];

我正在通过查看 ID 对类似于此的结构进行排序操作。现在,一旦我发现应该交换哪些记录来对数组进行排序,我就必须进行实际的交换。我试过这个:

if (iSmallest != iCntr) {
    stPTmp = &stXDB[iCntr];
    &stXDB[iCntr] = &stXDB[iSmallest];
    &stXDB[iSmallest] = &stPTmp;
}

stPTmp 定义为void *stPTmp; and iCntr and iSmallest包含要交换的记录的索引。我的代码不起作用,但如何修复它?


您需要交换元素,而不是指针,

struct MyStruct stTmp;

if (iSmallest != iCntr) {
    stTmp = stXDB[iCntr];
    stXDB[iCntr] = stXDB[iSmallest];
    stXDB[iSmallest] = stTmp;
}

效率不是很高,但是你的结构很小,所以它只比交换指针贵一点。

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

交换结构体数组中的元素 的相关文章

  • 更新面板工作速度非常慢

    我正在编写一个用户可以注册的应用程序 注册时 可以选择多个选项 并根据这些注册字段可见或不可见以及是否必需 我想出了一个想法 所有字段都将位于 updatePanel 中 当用户更改注册选项时 我将在服务器端设置这些字段的可见性 它可以工作
  • Exit() 时是否调用基本对象析构函数?

    我意识到这个问题已经出现过几次 但我试图获得上述问题的明确答案 但我不断遇到相互矛盾的信息 我需要知道的是 当我使用 exit 时 基本类对象是否被破坏 我知道需要删除动态内存 但我的意思更像是 include
  • Rx.NET 中是否有一个Subject 实现,其功能类似于BehaviourSubject,但仅在值发生更改时才发出?

    有没有Subject https learn microsoft com en us previous versions dotnet reactive extensions hh229699 v vs 103 Rx NET 中的实现在功能
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • 有些有助于理解“产量”

    在我不断追求少吸的过程中 我试图理解 产量 的说法 但我不断遇到同样的错误 someMethod 的主体不能是迭代器块 因为 System Collections Generic List 不是迭代器接口类型 这是我被卡住的代码 forea
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 处理右值时的 insert 与 emplace

    std string myString std unordered set
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 不可变类与结构

    以下是类与 C 中的结构的唯一区别 如果我错了 请纠正我 类变量是引用 而结构变量是值 因此在赋值和参数传递中复制结构的整个值 类变量是存储在堆栈上的指针 指向堆上的内存 而结构变量作为值存储在堆上 假设我有一个不可变的结构 该结构的字段一
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • C++:为什么 numeric_limits 对它不知道的类型起作用?

    我创建了自己的类型 没有任何比较器 也没有专门化std numeric limits 尽管如此 由于某种原因 std numeric limits
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2

随机推荐

  • C# 中在另一个类中声明的类

    我正在处理一些遗留代码 并遇到了一些我不确定的事情 我们有一个class y在另一个内部声明的class x Class y只在内部使用过class x但我的问题是你为什么不创建一个单独的类文件并放入class y在那里而不是在里面声明它c
  • 具体类的继承是邪恶的吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对大多数类型使用接口 抽象基类 并且通常不从具体类继承 但我最近遇到了需要继承或组合的情况 我已经知道这句格言 针对接口编程 而不是实现 但最
  • 当只应该存在一个窗口时,Tkinter 在使用多重处理选择文件时打开多个 GUI 窗口

    我有primary py from tkinter import from tkinter filedialog import askopenfilename from tkinter import ttk import multiproc
  • 合并为零而不是空

    我有一个简单的公司表 它使用的列名不一致turnover and revenue 该表目前如下所示 company turnover revenue A 10000 0 B 0 2500 C 0 3000 4 23000 0 我知道如何使用
  • 如何在jade中添加条件html标签?

    In jade https github com visionmedia jade 我想根据条件放入一个 html 标签这个方法 http paulirish com 2008 conditional stylesheets vs css
  • 在 Android 中,如何检测我的活动恢复的原因?

    我正在开发一个活动 它可以进行一些自己的状态管理 我试图区分以下 onResume 情况 新品上市 任务切换 home键长按 在同一应用程序中进行其他活动后恢复 睡眠后醒来 方向改变 活动的意图或其他地方是否有某些东西可以帮助我区分这些 出
  • 使用翻转正交、字形顶部和基线之间的差异渲染 FreeType 文本

    我正在开发一个项目 在该项目中 我实现了一个 FreeType 渲染对象来绘制文本 其中渲染环境是用正交投影矩阵指定的 glm ortho 0 Width Height 0 这确保了坐标与标准 GUI 系统相似 0 0 是窗口的左上角而不是
  • mongodb 文档大小限制是否会从 16MB 增加?

    文档大小从 4MB 增加到 16MB 2010年12月 https jira mongodb org browse SERVER 431 还会进一步增加吗 如果是的话什么时候 解决该大小的一项工作是通过创建更多集合并执行应用程序级别连接 不
  • 将 html 表转换为 pandas 数据框

    我一直在尝试从网站导入 html 表并将其转换为 pandasDataFrame 这是我的代码 import pandas as pd table pd read html http www sharesansar com c today
  • LibGdx:使用手势监听器

    我想使用一些您无法访问的更复杂的触摸屏手势 Gdx input 我发现要做到这一点 我必须创建一个手势侦听器 因此我创建了 GestureHandler 类并从wiki https code google com p libgdx wiki
  • 如何接受<>指定另一个键?或者更快的方法来区分两个巨大的 List<>?

    我有一个清单AE AlignedPartners数据库中的项目 我用以下方法检索 List
  • 电话号码无法在 IOS 模拟器上处理

    我正在为 IOS 开发一个基于phonegap的应用程序 该应用程序已经为Android开发完成 我在 html 页面上有以下链接 a href 0180123456789 a Android 设备可以正确解释它 如果我在 XCode 中的
  • 响应 NSNotifications 时,更新 UIViews 的最佳实践是什么

    由于 NSNotification 在主线程以外的线程上调用其选择器 因此我注意到您为响应该通知而对 UIView 或其他界面元素所做的任何更改通常都很难生效 如果主线程很忙 就像我的经常这样 这是最严重的 我可以通过调用 performS
  • 随机且唯一的子集生成

    假设我们有从 1 到 25 的数字 我们必须选择 15 个数字的集合 如果我没猜错的话 可能的集合是 3268760 在这 3268760 个选项中 您必须生成 100000 个 生成 100000 个唯一且随机的子集的最佳方法是什么 有没
  • T 树或 B 树

    T树算法描述于这张纸 http www vldb org conf 1986 P294 PDFT Tree是T tree的改进 可以更好地使用查询操作 包括范围查询 并且包含T tree的所有其他良好功能 该算法在论文 T tree A M
  • 使用 fields_for 时如何将范围应用于关联?

    我有一个包含许多任务的项目 每个任务都属于一个人 在我的项目编辑表单中 我允许编辑现有任务并使用嵌套对象表单工具添加新任务 http ryandaigle com articles 2009 2 1 what s new in edge r
  • 如何在iOS上使用代码截屏?

    如何以编程方式截取屏幕截图 您可以使用UIGraphicsBeginImageContext以此目的 例如 UIGraphicsBeginImageContextWithOptions self view bounds size self
  • 制作第三代iPad应用程序的注意事项

    我目前正在制作一个 iPad 应用程序 其中的视图是为 iPad 2 分辨率创建的 不过现在iPad已经出了双倍分辨率了 我也得支持一下 请直接告知要在应用程序中进行哪些更改才能支持 iPad 2 和第 3 代 iPad 我能想到的唯一方法
  • 使用 C# 和 UI Automation 获取未知控件类型的内容

    下图中有一个区域 其具有未知 自定义 类别 那不是网格或表格 我需要能够 选择该区域中的行 从每个单元格中获取一个值 问题是因为这不是一个常见的类型元素 我不知道如何用谷歌搜索这个问题或自己解决它 到目前为止 代码如下 Process pr
  • 交换结构体数组中的元素

    假设我有这个结构 struct MyStruct int iID int iMyNumber 然后我定义一个 MyStructs 数组 struct MyStruct msTest 3 我正在通过查看 ID 对类似于此的结构进行排序操作 现