C++ 在C+中从键盘创建N个链表作为N个数字+;

C++ 在C+中从键盘创建N个链表作为N个数字+;,c++,linked-list,C++,Linked List,我的程序有问题。我会尽力解释的,这样你可以帮助我 假设您想要拥有N个包,并且对于每个包,您想要输入多个球(每个包的最大球数=10) 我有一个函数,首先引入行李的编号N,然后它从用户那里读取每个行李的输入行,如1 3 4 9,指示输入到该行李中的元素,依此类推,直到行李N 我的问题是,在介绍完球之后,我如何“记住”球的输入顺序?在上面的示例行中,顺序将先是1,然后是3,然后是4,最后是9 在其他函数中,我需要为每个包I,按照输入的顺序获取其元素,并对其执行一些操作 我的代码类似于 for (int

我的程序有问题。我会尽力解释的,这样你可以帮助我

假设您想要拥有
N个
包,并且对于每个包,您想要输入多个球(每个包的最大球数=10)

我有一个函数,首先引入行李的编号
N
,然后它从用户那里读取每个行李的输入行,如
1 3 4 9
,指示输入到该行李中的元素,依此类推,直到行李
N

我的问题是,在介绍完球之后,我如何“记住”球的输入顺序?在上面的示例行中,顺序将先是1,然后是3,然后是4,最后是9

在其他函数中,我需要为每个包
I
,按照输入的顺序获取其元素,并对其执行一些操作

我的代码类似于

for (int i = 0; i < N ; i ++){
    //read all numbers
    //and for each number "j"
    G[i][j] = true;
}
for(int i=0;i
其中
G
bool G[x][y]
,我使用它来创建元素与其包之间的关系,但这不起作用,因为它没有给我输入的顺序

我想创建一个链表,但我不知道如何使用键盘上的
N
创建
N
列表,然后访问每个列表


我不知道是否清楚,但我不需要随机访问每个包的每个元素,我只需要对一个包按输入的顺序对其元素进行迭代。

这是
std::vector
适合的情况。您不需要使用链表(如
std::list

例如:

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <limits>

struct Bag
{
    int NumBalls;
    int Balls[10];

    Bag() : NumBalls(0) {}
};

int main()
{
    int N;
    std::cout << "How many bags do you want? ";

    if (!((std::cin >> N) && (N > 0)))
    {
        std::cout << "Bad input!" << std::endl;
        return 0;
    }
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

    std::vector<Bag> Bags(N);

    for (int i = 0; i < N; ++i)
    {
        std::cout << "Enter balls for bag " << i+1 << ": ";

        std::string line;
        if (!std::getline(std::cin, line))
            break;

        std::istringstream iss(line);

        Bag &bag = Bags[i];
        int ball;

        do
        {
            if (!(iss >> ball))
            {
                if (!iss.eof())
                    std::cout << "Bad input!" << std::endl;
                break;
            }

            bag.Balls[bag.NumBalls] = ball;
            bag.NumBalls++;
        }
        while (bag.NumBalls < 10);
    }

    std::cout << std::endl;

    for (int i = 0; i < N; ++i)
    {
        std::cout << "Bag " << i+1 << " contains:";

        Bag &bag = Bags[i];
        for(int j = 0; j < bag.NumBalls; ++j)
            std::cout << " " << bag.Balls[j];

        std::cout << "\n";
    }

    return 0;
}
#包括
#包括
#包括
#包括
#包括
结构袋
{
智力障碍;
int-Balls[10];
Bag():NumBalls(0){}
};
int main()
{
int N;
标准::cout>N)和&(N>0)))
{

std::cout链表通常不使用
[]访问
运算符。我知道,但我不需要随机访问包中的每个元素,我只需要按照输入的顺序访问包中的元素。值按您存储它们的任何顺序存储。读取一个数字,将其放入列表中。读取下一个数字,将其放入同一列表的下一个插槽中。然后继续。然后从第一个开始迭代列表t到最后。值的输入顺序与输入顺序相同。您对此有什么问题?@Uwunt但我不知道如何创建N个列表--
std::vector list(N);