C++98 std::vector 遍历和删除指定元素

在 C++98 中,可以使用迭代器来遍历和删除 std::vector 中的指定元素。以下是使用迭代器遍历和删除指定元素的示例代码:c++#include #include

struct tag_ClientCBS { int id; std::string name;};

int main() { std::vector<tag_ClientCBS> cbs_vec;

// 添加一些元素到向量中    cbs_vec.push_back({1, 'Client 1'});    cbs_vec.push_back({2, 'Client 2'});    cbs_vec.push_back({3, 'Client 3'});    cbs_vec.push_back({4, 'Client 4'});    cbs_vec.push_back({5, 'Client 5'});

// 遍历向量并输出元素    std::vector<tag_ClientCBS>::iterator it;    for (it = cbs_vec.begin(); it != cbs_vec.end(); ++it) {        std::cout << 'ID: ' << it->id << ', Name: ' << it->name << std::endl;    }

// 删除指定元素(例如,删除ID为3的元素)    for (it = cbs_vec.begin(); it != cbs_vec.end(); ++it) {        if (it->id == 3) {            cbs_vec.erase(it);            break;  // 删除后立即退出循环,避免无效的迭代器访问        }    }

// 再次遍历向量并输出元素    std::cout << 'After deletion:' << std::endl;    for (it = cbs_vec.begin(); it != cbs_vec.end(); ++it) {        std::cout << 'ID: ' << it->id << ', Name: ' << it->name << std::endl;    }

return 0;}

代码解释:

  1. 包含头文件: iostream 用于输入输出,vector 用于使用 std::vector 容器。2. 定义结构体: tag_ClientCBS 结构体表示要存储在向量中的元素类型。3. 创建向量: cbs_vec 是一个存储 tag_ClientCBS 结构体的向量。4. 添加元素: 使用 push_back() 方法向向量中添加元素。5. 遍历向量: 使用迭代器 it 遍历向量,并使用 it-> 访问结构体成员。6. 删除元素: 使用 erase() 方法删除指定元素。注意: 删除元素后,迭代器会失效,因此需要在删除后立即退出循环,或者使用 erase() 返回的新迭代器继续遍历。7. 再次遍历: 删除元素后,再次遍历向量并输出元素,验证删除操作的结果。

注意: C++11 引入了更简洁的语法来遍历和删除向量元素,例如基于范围的 for 循环和 remove_if 算法。

C++98 std::vector 遍历和删除指定元素

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

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