C++如何制作一个只有向量中事物数量那么大的编号列表
C++ How to make a numbered list only as big as the number of things in my vector
我想为向量的内容制作一个编号列表,该列表将根据向量中的内容数量而缩小或增加,因为用户可以随意添加或删除向量中的属性。
在该项目中,用户可以从菜单中选择以1编辑矢量。添加一本书,2。显示矢量中所有书籍的列表,以及3。删除书本。下面的功能是选项3,删除一本书。正如你所看到的,我已经将"y"设置为被删除的用户选择,我现在所需要的就是在一个编号列表中为用户列出书籍(矢量图书收藏的内容)。
int delBook(vector<string> *bookCollection)
{
int y;
for (vector<string>::iterator bIter = bookCollection->begin(); bIter < bookCollection->end(); bIter++)
{
if (bookCollection->at(y+1) == *bIter)
{
bookCollection->erase(bIter);
}
}
}
我希望删除选择在控制台中看起来像这样:
- "第一册">
- "第二册">
- "第三册">
"第四册">
输入要删除的图书编号:"4">
但可以根据添加到向量中的字符串数量进行收缩或增加,因此下次用户选择"3。删除一本书"它显示:
- "第一册">
- "第二册">
"第三册">
输入要删除的图书编号:
我对编程还很陌生,所以如果这些都没有意义,请原谅我,我还在学习行话。
显示和处理菜单的方法有很多。
这是一种表驱动的方法:
struct Menu_Item
{
const char * menu_text;
void (*processing_function)(); // Pointer to processing function
};
void Process_Hello()
{
std::cout << "Hellon";
}
static const Menu_Entry menu_1[] =
{
{"Print Hello", Process_Hello},
};
const size_t menu_1_item_count =
sizeof(menu_1) / sizeof(menu_1[0]);
void Menu_Processor(Menu_Entry const * const p_menu,
size_t item_count)
{
for (unsigned int i = 0; i < item_count; ++i)
{
std::cout << (i + 1) << p_menu[i].menu_text << "n";
}
unsigned int selection;
std::cin >> selection;
// Process the selection:
(p_menu[selection - 1])();
}
这种方法很好,因为您可以在表中插入或删除条目,而无需更改代码。它可以改进,但这一个演示了表驱动菜单系统的概念。
相关文章:
- Pybind11:将元组列表从Python传递到C++
- 从链接列表c++中删除一个项目
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- C++如何通过用户输入删除列表元素
- 读取文件的最后一行并输入到链接列表时出错
- 复制列表初始化的隐式转换的等级是多少
- LNK2038、MSVS2017 MAGMA的原因列表
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 没有为自己的结构调用列表推回方法
- 使用简单类型列表实现的指数编译时间.为什么
- 一对向量构造函数:初始值设定项列表与显式构造
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 通过for循环使用用户输入填充列表
- C++:如何使函数只返回作为列表一部分的字符串
- 概念中的cv限定符需要表达式参数列表
- 下面是我为检测链接列表中的循环而制作的代码
- 建议在运行时将带有类实例的列表从c++导入qml
- 贪婪算法编号列表
- C++如何制作一个只有向量中事物数量那么大的编号列表
- 从richit中复制编号列表