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);