C++动态扩展阵列
C++ dynamic expanding array
C++你能分配一个数组而不告诉它数组有多大吗? 我正在模拟一个杂货店结账程序,我将使用多维来实现这一点,因为输入需要如下所示:"请输入产品编号和数量"110111 4(第一个是产品编号,第二个是数量)。
由于第二个值,下面会引发错误
#include <iostream>
#include <fstream>
#include "checkout.h"
using namespace std;
int main()
{
Checkout check;
int choice;
int array_size = 0;
int max = 10;
int* product_info = new int[max][1];
do{
cout << "Please Enter Item Number and Quantity: ";
cin >> product_info[array_size][array_size];
}while(!choice == 0);
system("pause");
return 0;
}
编辑 * 我意识到数组 cin 在这个例子中搞砸了。
二维数组对于此任务似乎不是很有效,数组将非常稀疏。
您可以根据需要动态增长它,但只能在一个维度(您可以选择作为编码时间)中,另一个维度必须永久固定,这充其量是半解。
在程序中,使用一个声明为具有绑定1
的维度。 这意味着允许的索引范围仅为0
到0
,因此该维度实际上并不存在。
所以你只需要一个一维数组(按产品ID索引;数量将被放置在数组中,而不是作为它的第二个维度);在你的应用程序中,一个代替数组的vector
(如注释所示)将为你处理动态方面(重新分配),这样你甚至不必关心向量现在有多大。
以下是声明结构的方法,只是 POS 代码(物料的 ID)通常太大而无法放入实际应用程序中的int
中,并且数量可能并不总是真正的积分。
struct transaction_line
{
int poscode;
int quantity;
};
std::vector<transaction_line> transaction;
相关文章:
- OpenMP阵列性能较差
- 是否可以通过C++扩展强制多个python进程共享同一内存
- static_assert在宏中,但也可以扩展到可以用作函数参数的东西
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 扩展光电二极管探测器以支持多个传感器
- 当我的阵列太大时出现分段错误
- 位阵列上的快速AND运算
- C++中的VLA,扩展名为std=C++11
- OpenGL 和 GLM 矩阵无法正确扩展,总是按比例缩小
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- 阵列必须使用大括号封闭的初始器进行初始化
- C++返回 Numpy 数组的 Python 扩展模块
- 扩展可变参数模板中的变量名称
- 没有从阵列<float>到阵列<int>的可行转换
- 扩展C++生成的代码的模板参数类型名称
- 我想通过带有C++和Python的插件创建一个可扩展的应用程序
- 扩展我的阵列
- C++动态扩展阵列
- 如何扩展动态分配的阵列