将记录推送到数据结构中

时间:2019-01-13 09:05:41

标签: c++ data-structures

我想知道是否可以使用

int age = 21;
string name = "marc";
char gender = 'M';
std::stack stck;
stck.push (age,name,gender); 

到堆栈。
我所看到的所有东西只能将一项推入堆栈。

2 个答案:

答案 0 :(得分:1)

您创建一个包含要推送的信息的对象,然后推送该对象。

struct Person
{
    Person(int age, String name, char gender) : age(age), name(name), gender(gender) {}
    int age;
    String name;
    char gender;
};

Stack<Person> s;
s.push(Person(age, name, gender));

这是完全正常的C ++,任何C ++书籍都将详细介绍。

答案 1 :(得分:0)

要定义任意数据记录而不创建自己的structclass,可以使用std::tuple

#include <tuple>
#include <stack>
#include <string>

using PersonRecord = std::tuple<int,std::string,char>;

int main() {
    std::stack<PersonRecord> s;

    s.push(std::make_tuple(21,"Marc",'M'));
    s.push(std::make_tuple(25,"Maria",'F'));

}

看到它工作here