C++98 中使用 std::vector 删除元素:以 job_st 结构体为例

在 C++98 标准中,可以使用 erase() 函数来删除 vector 中的某个元素。以下是一个示例实现,演示如何从一个包含 job_st 结构体的 vector 中删除指定元素。

代码示例:

#include <iostream>
#include <vector>
#include <cstring>

// 定义 job_st 结构体
typedef struct {
    char taskName[256];
    int job_id;
    int TASKType;
} job_st;

typedef job_st *pjob_t;

int main() {
    std::vector<job_st> job_restore_vector;

    // 添加一些元素到 vector 中
    job_st job1;
    std::strcpy(job1.taskName, 'Task 1');
    job1.job_id = 1;
    job1.TASKType = 1;
    job_restore_vector.push_back(job1);

    job_st job2;
    std::strcpy(job2.taskName, 'Task 2');
    job2.job_id = 2;
    job2.TASKType = 2;
    job_restore_vector.push_back(job2);

    // 删除某个元素
    int index_to_remove = 0;  // 要删除的元素的索引
    job_restore_vector.erase(job_restore_vector.begin() + index_to_remove);

    // 打印剩余元素
    for (std::vector<job_st>::iterator it = job_restore_vector.begin(); it != job_restore_vector.end(); ++it) {
        std::cout << 'Task Name: ' << it->taskName << ', Job ID: ' << it->job_id << ', Task Type: ' << it->TASKType << std::endl;
    }

    return 0;
}

代码说明:

  1. **定义结构体:**代码首先定义了一个名为 job_st 的结构体,用于存储任务信息,包括任务名称、任务 ID 和任务类型。
  2. **创建 vector:**随后创建了一个名为 job_restore_vector 的 std::vector,用于存储 job_st 结构体类型的元素。
  3. **添加元素:**代码中创建了两个 job_st 结构体对象 job1 和 job2,并分别将它们添加到 vector 中。
  4. **删除元素:**代码使用 erase() 函数删除了索引为 0 的元素。erase() 函数接受一个迭代器作为参数,该迭代器指向要删除的元素。
  5. **遍历打印:**代码使用迭代器遍历 vector,并打印剩余元素的信息。

总结:

通过以上示例,可以了解如何在 C++98 标准中使用 erase() 函数删除 std::vector 中的元素,并熟悉 erase() 函数的使用方法。在实际应用中,根据具体需求选择合适的删除方法。

C++98 中使用 std::vector 删除元素:以 job_st 结构体为例

原文地址: https://www.cveoy.top/t/topic/g2dV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录