我想知道是否可以使用
int age = 21;
string name = "marc";
char gender = 'M';
std::stack stck;
stck.push (age,name,gender);
到堆栈。
我所看到的所有东西只能将一项推入堆栈。
答案 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)
要定义任意数据记录而不创建自己的struct
或class
,可以使用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。