小编mot*_*m79的帖子

在多个文件上运行shell脚本作为输入

我有一个shell命令,格式如下:

my_cmd -I file1.inp -O file1.out
Run Code Online (Sandbox Code Playgroud)

进行某些处理file1.inp并将结果存储在其中的地方file1.out

在我的主目录中,我有许多格式为的文件:*.inp我想为所有这些文件运行此命令并将结果存储到*.out.我可以只用shell脚本来实现吗?

bash shell

2
推荐指数
1
解决办法
52
查看次数

使用map调用__init__函数

我想通过调用列表中__init__的每个元素来构造参数列表中的对象列表.有可能吗?这是一个例子:

class Foo(object):
    def __init__(self,x ):
        self.x = x

X = [1,2,3]

ob1 = [Foo(x) for x in X]
# works!

ob2 = map(Foo.__init__, X)
does not work
Run Code Online (Sandbox Code Playgroud)

python constructor

2
推荐指数
1
解决办法
70
查看次数

Boost:多索引:如何迭代与非唯一有序索引匹配的所有结果?

我有一个用于存储成员的 Boost 多索引容器MyClass。它有一个唯一的(first_field)和非唯一的(第二个字段)索引:

typedef multi_index_container<
MyClass,
indexed_by<
        ordered_unique<member<MyClass, std::string, MyClass.first_field>>,
        ordered_non_unique<member<MyClass &, std::string, MyClass.second_field>>>
> MyClass_Set;
Run Code Online (Sandbox Code Playgroud)

如果我通过第二个索引搜索容器:

auto it = container.get<1>().find("second_field_value_to_be_searched);
Run Code Online (Sandbox Code Playgroud)

我得到一个 const 迭代器。如何迭代容器中与上述谓词匹配的所有元素?

c++ boost boost-multi-index

2
推荐指数
1
解决办法
1513
查看次数

C++数据结构类似于具有多个关键级别的std :: map

我希望有一个类似于std::map多个关键级别的数据结构.例如,在my_map中:

(‘a’ , “a1”) ->  “value1”
(‘a’ , “a2”) ->  “value2”
(‘b’ , “b1”) ->  “value3”
(‘b’ , “b2”) ->  “value4”
Run Code Online (Sandbox Code Playgroud)

第一级键值是chars:['a' and 'b']第二级键是std::string("a1"等),值是字符串.

API要求:

使用两个键值添加元素.通过第一个键检索元素:my_map.at_first_level('a'),这应返回如下地图:

"a1" -> “value1”
"a2" -> “value2”
Run Code Online (Sandbox Code Playgroud)

这个"多级地图"数据结构是否在任何C++库中实现?

c++ containers boost dictionary

1
推荐指数
1
解决办法
505
查看次数

如何使类成员变量与函数模板的返回类型相同?

我正在为sqlite orm使用第三方C++库.该库具有返回模板对象的函数.对象的类型是一个非常长的模板,它取决于数字表等.这就是提供的示例总是使用的原因auto.这是一个例子:

auto storage = make_storage("db.sqlite",
                            make_table("users",
                                       make_column("id", &User::id, autoincrement(), primary_key()),
                                       make_column("first_name", &User::firstName),
                                       make_column("last_name", &User::lastName),
                                       make_column("birth_date", &User::birthDate),
                                       make_column("image_url", &User::imageUrl),
                                       make_column("type_id", &User::typeId)),
                            make_table("user_types",
                                       make_column("id", &UserType::id, autoincrement(), primary_key()),
                                       make_column("name", &UserType::name, default_value("name_placeholder"))));
Run Code Online (Sandbox Code Playgroud)

storage从函数返回的对象的类型很长,如下所示:

sqlite_orm::internal::storage_t<sqlite_orm::internal::table_t<Feed::MyClass, sqlite_orm::internal::column_t<Feed::MyClass, int, int const& (Feed::MyClass::*)() const, void (Feed::MyClass::*)(int), sqlite_orm::constraints::autoincrement ...
Run Code Online (Sandbox Code Playgroud)

我的问题是我想将此storage对象用作另一个类的成员变量.我如何告诉客户端类函数的返回类型make_storage

c++ templates

1
推荐指数
1
解决办法
103
查看次数