C 中的填充向量
populate Vector in C++
我在C 中的populate_vector函数工作由于我是C 语言的新手,因此很难进入向量概念。
- 我想做的是获取x,y用于输入(上面但不显示此处),并且具有(3x * 2y)大小向量。并用代表三个像素(红色,绿色,蓝色) 的随机数填充向量
- 一个1维代表2维矩阵的数组
问题是:该代码无法正常工作。当我运行它时,它只是显示输入输入的代码,然后在输入输入时,就是这样。我不知道为什么它不起作用以及如何更改
vector<int> xVector((3*x) * (2*y));
vector<int>::iterator iter;
srand((unsigned)time(NULL));
// int a = rand() % 255 +1;
for (int i = 0; i < xVector.size(); i++)
{
int b = rand() % 255 + 1;
int c = rand() % 255 + 1;
xVector.push_back(b);
xVector.push_back(c);
}
for (auto i = 0; i < xVector.size(); i++)
{
cout << "xVector[" << i << "] : " << xVector[i] << endl;
}
您迭代向量,在每个元素中,您添加两个。因此,这是一个永无止境的循环。
.push_back
将在向量末端添加该元素的末端,因此size()
始终在增加。
我建议这样的东西。
vector<int> xVector((3*x) * (2*y));
std::generate(xVector.begin(), xVector.end(), []{return rand() % 255 + 1;});
或如果要使用循环
for (int i = 0; i < xVector.size(); ++i){
xVector[i] = rand() % 255 + 1;
}
它将为每个元素设置一个随机数。
我建议使用struct
的vector
。
示例:
struct Point
{
int x;
int y;
};
std::vector<Point> database;
也许您想要一个像素属性的2D容器:
struct Pixel
{
unsigned int red;
unsigned int green;
unsigned int blue;
};
std::vector< std::vector<Pixel> > bitmap;
使用奇数条目为x,甚至条目y的向量(或数组)简直是混乱。平行阵列很难维护并导致很多缺陷。
更好的解决方案涉及使用结构的数组或向量。
相关文章:
- 用C++中的数字和条件填充向量
- 使用 C++98 标准填充二维静态向量
- 如何使用迭代器填充未知大小的向量?
- 使用 C++-17,如何从字符串向量填充元组
- 用基于范围的for循环填充指针向量
- 使用所述填充构造函数初始化向量中的向量
- 是否有可能让 c++ dll 在后台运行 python 程序并让它填充向量图?如果是这样,如何?
- 如何将目录中的文件属性填充到结构向量中?
- 有没有办法使用数组填充向量?
- 用对对填充向量未按预期工作
- 用于填充 Base 和派生对象的 shared_ptr 向量的函数模板
- 可选类输入中的 C++ 填充向量
- 用构造函数调用填充向量
- DLL – 在 DLL 初始化时填充的静态向量,向客户端程序返回零大小
- 从函数填充的字符串的推导向量到 int 的字符串
- parallel_for lambda 函数填充 2D 向量后出错
- 你能在C++中匿名填充一个向量向量吗?
- 如何有效地用向量填充结构
- 从矢量中擦除元素,并向量填充结构
- 一种用内部向量填充结构向量的优雅/高效方法