【问题标题】:splitting a string into different arrays将字符串拆分为不同的数组
【发布时间】:2013-11-18 17:17:15
【问题描述】:

我的输入格式 项目类型的数量,后跟 N (N - no.of items) 行,每行代表一对整数,格式为 L B,其中 L 是项目的长度,B 是项目的宽度。

示例输入格式:
2
1 1
5 4

我的问题是如何在不使用 C++ 中的向量的情况下将所有长度发送到一个数组中并将所有宽度发送到一个数组中。我知道人们已经问过这类问题,但我不知道如何将它们发送到两个不同的数组。

我的程序应该在沙箱中运行。沙盒会自动为程序提供输入。所以我必须以采用上述输入格式的方式编写我的程序

【问题讨论】:

  • 我还没有理解这些数字 2 1 1 5 4 的含义。
  • 有助于了解您如何获得该输入。是txt文件吗?
  • 它不是文本文件。我的程序应该在沙箱中运行。沙盒会自动为程序提供输入。所以我必须以采用上述输入格式的方式编写我的程序

标签: c++ arrays


【解决方案1】:
cin >> n;
int *l,*b;
l = new int[n];
b = new int[n];

for(int i=0; i<n; ++i) {
  cin >> l[i] >> b[i];
}

【讨论】:

  • 我将一次输入整个字符串 1 1,中间有一个空格。我不需要用空格分割字符串吗
  • 是的,需要一个空格来分隔两个整数。您也可以使用任意数量的空格或换行符输入您的数字,只是顺序很重要。
  • 数组的长度必须是编译时已知的常数,所以你不能这样声明它们。使用std::vector&lt;int&gt; l(n), b(n)。由于向量返回引用,循环中的后续行仍然有效。
  • @HeywoodFloyd 你能告诉我没有向量的其他方式吗?谢谢
  • user3005614,上面编辑的代码就可以了。但是,您需要在使用完 l 和 b 数组后释放它们,否则会出现内存泄漏。
猜你喜欢
  • 2017-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 2012-02-22
相关资源
最近更新 更多