【发布时间】:2021-12-26 01:55:40
【问题描述】:
我现在正想弄清楚一件事,但我做不到,我需要为此找到一个类型
(蟒蛇)
def fn1(hello: list[str]) -> None:
pass
mv = [(fn1, ("1", "hello", "12", "no")), (fn1, ("w", "ufewef", "1ee", "no"))] # any size
mv 的 C++ 类型是什么? (不管它是否可变)
我试过std::vector<std::vector<std::string, std::function>>,但它会抛出一个错误,有没有办法做到这一点,或者必须使用两个向量?
【问题讨论】:
-
我认为你需要一个结构向量。并定义你自己的结构,比如 struct my_data { std::function
fn;标准::字符串 str1; ... std::string str4; }; (然后给 fn, str1, ... str4 赋予有意义的名称 -
@Pepijn Kramer 谢谢,我会试试 :)
-
缺少一些括号。您可能在这两个地方都指的是
"no"))。 -
@aschepler 是的,对不起
-
using MyFunction = void(const std::vector<std::string>&); using MyDataStructure = std::vector<std::pair<MyFunction*, std::vector<std::string>>>;或使用std::function<MyFunction>代替MyFunction*是否需要表示除普通函数指针之外的可调用对象。
标签: c++ string function vector