用C ++填充Vector

时间:2017-03-13 16:30:09

标签: c++ arrays vector

我正在使用C ++中的populate_vector函数 由于我是C ++语言的新手,因此很难进入矢量概念。

  • 我想要做的是获取x,y作为输入(在上面但不在此处显示)并且具有(3x * 2y)大小向量。并用随机数填充向量以表示三个像素(红色,绿色,蓝色)
  • 用于表示二维矩阵的一维数组

问题是: 代码无法正常运行。当我运行它时,它只显示输入的输入代码,然后输入输入时,那就是它。我不知道为什么它不起作用以及如何改变它

boolean

2 个答案:

答案 0 :(得分:0)

迭代向量,在每个元素中再添加两个向量。所以这是一个永无止境的循环。

.push_back会在向量的末尾添加该元素,因此size()总是在增加。

我会建议这样的事情。

vector<int> xVector((3*x) * (2*y));
std::generate(xVector.begin(), xVector.end(), []{return rand() % 255 + 1;});

或者如果你想使用for循环

for (int i = 0; i < xVector.size(); ++i){
     xVector[i] = rand() % 255 + 1;
}

它将为每个元素设置一个随机数。

答案 1 :(得分:0)

我建议使用DefaultJpaContext vector 例如:

struct

也许你想要一个像素属性的2d容器:

struct Point
{
  int x;
  int y;
};
std::vector<Point> database;

使用向量(或数组),其中奇数条目为X,偶数条目为Y,只是简单的杂乱。并行阵列难以维护并导致许多缺陷。

更好的解决方案涉及使用数组或结构向量。