在C ++中创建无限数组

时间:2017-04-16 08:51:22

标签: c++ arrays

任何人都可以帮助在C ++中定义无限数组来制作正弦波发生器,在那里我可以存储正弦波的值吗?

for (;;)
{
    X[n]= sin(2*PI*f0/fs);
}

2 个答案:

答案 0 :(得分:0)

如果您想要“无限制”(仍然受可用RAM量限制)阵列,您可以使用vector(参见下面的编辑)

但是,在您的情况下,我会使用大型数组(例如,最多一百万个元素或数组大小等于屏幕宽度)。

编辑:以下是一个示例

  // Declare (and instantiate) a vector
  std::vector<float> vec;

  // Add elements to the vector
  for(int i = 0; i < 100; i++)
      vec.push_back(i*i);

  // Read and print the elements in the vector
  for(int i = 0; i < vec.size(); i++)
      std::cout << "vec[" << i << "] = " << vec[i] << '\n';

  // Note:
  std::cout << "Note that a vector is limited to " << vec.max_size() << " elements\n";

我仍强烈建议简单地声明一个大型数组,因为您可能只需要有限数量的值,并且事先知道需要多少个值(当您不知道数组有多大时,通常会使用向量定)。

答案 1 :(得分:0)

不幸的是,它无法完成,你至少可以尝试迭代像ULONG_MAX这样的大常量,即4294967295.

但首先,问问自己你有足够的记忆吗?