You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中如何直接接收用户输入的对象并传递给函数

实现方案

核心思路

用键值对映射(不同语言中可称为字典、对象字面量、哈希表)直接绑定用户输入值与待传入的对象,通过用户输入的索引/标识直接从映射中取出对应对象,时间复杂度为O(1),比多层if/else-if的*O(n)*效率更高,后续新增可选对象时只需要加一行映射项,维护成本更低。

不同语言的实现示例

Python 示例

# 预先定义可选对象
obj1 = {"name": "对象1"}
obj2 = {"name": "对象2"}
obj3 = {"name": "对象3"}

# 建立用户输入到对象的映射表
obj_map = {
    "1": obj1,
    "2": obj2,
    "3": obj3
}

# 获取用户输入
user_input = input("请输入对象对应的编号:")
# 直接取出对应对象,用get方法兼容输入不存在的边界情况
target_obj = obj_map.get(user_input)
if target_obj:
    your_function(target_obj)
else:
    print("输入的编号不存在")

JavaScript 示例

// 预先定义可选对象
const obj1 = {name: "对象1"}
const obj2 = {name: "对象2"}
const obj3 = {name: "对象3"}

// 映射表
const objMap = {
    "1": obj1,
    "2": obj2,
    "3": obj3
}

// 获取用户输入
const userInput = prompt("请输入对象对应的编号:")
const targetObj = objMap[userInput]
if (targetObj) {
    yourFunction(targetObj)
} else {
    alert("输入的编号不存在")
}

额外优势

  • 后续新增可选对象时,不需要修改逻辑代码,只需要在映射表中新增对应键值对即可
  • 映射表可以动态生成,比如从配置文件、数据库中读取可选对象的关联关系,不需要硬编码分支逻辑
  • 代码可读性更高,所有可选的输入和对应对象的关系一目了然,不需要逐行读分支判断

内容的提问来源于stack exchange,提问作者Saud Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 15:36:02