C++ vector push_back() 初始化结构体成员

本文将介绍如何在 C++ 中使用 vectorpush_back() 方法初始化结构体成员,并解决 LeetCode 算法题中遇到的相关问题。

问题描述:

假设我们有一个结构体 my_type 和一个 vector<my_type> 类型的变量 solu,我们需要使用 solu.push_back() 方法将一个新的 my_type 对象添加到 solu 中,并初始化该对象的 datatimes 成员。

**代码示例:**cppstruct my_type { int data; vector times;};

int main() { vector<my_type> solu; vector nums = {1, 2, 3, 4, 5}; // 错误的写法 // solu.push_back(nums[0], my_type.times.push_back(0)); // 正确的写法 solu.push_back({nums[0], {0}}); return 0;}

代码解释:

  • 首先,我们定义了一个名为 my_type 的结构体,它包含一个 int 类型的成员 data 和一个 vector<int> 类型的成员 times。* 然后,我们创建了一个 vector<my_type> 类型的变量 solu 和一个 vector<int> 类型的变量 nums。* 在 main() 函数中,我们使用花括号初始化列表的方式创建了一个新的 my_type 对象,并将 nums[0] 赋值给 data,将一个只包含元素 0vector<int> 赋值给 times。* 最后,我们将这个新的 my_type 对象作为参数传递给 solu.push_back() 方法,将其添加到 solu 的末尾。

注意事项:

  • 在使用花括号初始化列表时,需要确保列表中元素的顺序与结构体成员声明的顺序一致。* 如果结构体成员本身也是一个容器类型,例如 vector,则需要使用嵌套的花括号初始化列表来初始化其元素。

总结:

使用花括号初始化列表是初始化 vector 中结构体成员的一种简洁高效的方法。通过这种方式,我们可以方便地创建和初始化新的结构体对象,并将其添加到 vector 中。

C++ vector push_back() 初始化结构体成员 - LeetCode 算法题解

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

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