C++类内结构体vector运行无输出 课程项目技术求助
帮你排查Inventory Inquisitor的无输出问题
嘿,别担心新手错误——谁都是从踩坑过来的!😊 现在看不到你的具体代码,没法直接定位问题,但我可以先给你几个最常见的排查方向,等你贴出代码后我们再深入分析:
- vector是空的! 如果你的结构体vector只是被声明了,但你没往里面添加任何结构体实例(比如没调用
push_back(),也没初始化元素),那遍历它自然不会有任何输出。这是新手最容易犯的小疏忽哦。 - 打印函数没被调用! 你可能在类里写了显示结构体内容的成员函数,但在
main()里既没实例化这个类的对象,也没调用这个打印函数?比如你得先创建Inventory类的对象,再调用它的显示方法才行。 - 打印逻辑有bug! 比如遍历vector的时候循环条件写错了(比如把
i < vec.size()写成了i > vec.size()),或者打印语句里的变量名拼写错误,导致内容没被正确输出到控制台。
给你一个简单的正确示例,你可以对比看看自己的代码哪里不一样:
#include <iostream> #include <vector> #include <string> // 你的结构体 struct InventoryItem { std::string itemName; int stockCount; }; // 你的类 class InventoryInquisitor { private: std::vector<InventoryItem> inventoryList; public: // 添加物品到库存的方法 void addItem(const std::string& name, int count) { inventoryList.push_back({name, count}); } // 显示库存内容的方法 void displayInventory() { // 用范围for循环遍历vector for (const auto& item : inventoryList) { std::cout << "物品名称:" << item.itemName << ",库存数量:" << item.stockCount << std::endl; } } }; int main() { // 实例化类对象 InventoryInquisitor myInventory; // 别忘了添加物品! myInventory.addItem("螺丝刀", 20); myInventory.addItem("扳手", 15); // 调用显示函数 myInventory.displayInventory(); return 0; }
快把你的代码贴出来吧,特别是类的定义、main()函数里的调用部分,我们一起找出问题所在~
内容的提问来源于stack exchange,提问作者BrockBonnett
相关产品推荐
相关产品推荐

