小编Bit*_*iot的帖子

可以提升:algorithm :: join()concat容器的浮点数?

Boost join可用于连接一个字符串容器,可选择用分隔符字符串分隔,如下例所示:boost :: algorithm :: join的一个很好的例子

我的STL技能很弱.我想知道是否有任何方法可以为数字容器(浮点数,双打数,整数)使用相同的函数?看起来应该有一个或两个衬里来适应其他类型.

还有stl的复制功能,这里有一个很好的例子: 如何打印出矢量的内容?

但我不喜欢它如何在每个元素之后添加分隔符字符串.我想使用boost.

c++ string boost stl adapter

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

在结构中的数组中的结构中初始化数组时出现问题

我的任务是删除一些编译器警告.我已经把问题归结为下面的例子,我正在摸不着为什么它不起作用.我想我不知道如何用C++初始化东西.任何帮助,将不胜感激.

我像这样使用g ++:g ++ init_arr.cpp

这是代码.我想在Aisle比萨的所有桌子上初始化所有人:

// init_arr.cpp
#include <iostream>
#include <string>
#include <sstream>

using namespace std;


struct Person {
    int    id;
    string name;
    double money;
};


struct Table {
    Person tab[4];
};


struct Aisle {
    Table ais[3];
};

int main() {
    cout << "main function()" << endl;

    Aisle pizza =
        {
            {  // Table 0
                { 0, "Tom", 100.0 },
                { 1, "Mary", 101.0 },
                { 2, "Jane", 103.0 },
                { 3, "Joe",  104.0 }
            },

            {  // Table …
Run Code Online (Sandbox Code Playgroud)

c++ arrays struct initialization

7
推荐指数
2
解决办法
345
查看次数

如何使用先前堆栈中的名称打印变量参数?

我想定义一个日志函数,该函数使用消息调用,后跟一个或多个要打印的变量.所以,如下所示:

log( "Oh no, error.", x, d)
Run Code Online (Sandbox Code Playgroud)

log将被定义为sorta,如:

def log( msg, *arg):
    # Loop through arg, printing caller's variable's name and value.
Run Code Online (Sandbox Code Playgroud)

这将记录以下文件:

Oh no, error.
    x = 5
    d = { foo: "Foo", goo: "Goo" }
Run Code Online (Sandbox Code Playgroud)

这可以完成吗?我可以使用inspect打印本地和参数,但我不知道是否可以使用前一帧的变量名来迭代当前帧中的值.(localsinspect.getargvalues(previousFrame)有名字,但是很多其他的名字了.)

python inspect

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

pylint 忽略源文件中的类

在pylint中,我可以输入我的源代码:

# pylint: disable=no-member
Run Code Online (Sandbox Code Playgroud)

但是,我真的想针对某些类禁用此警告,尤其是我的 google protobuf 类和 zmq 对象。此站点上的答案建议忽略类作为编译器选项:

pylint --ignored-classes=some_class_name my_python_file.py
Run Code Online (Sandbox Code Playgroud)

您也可以将此选项放在 pylintrc 文件中。我也不想做。我宁愿坚持在源文件中的选项。如果我执行以下操作,我会收到投诉:

# (Does not work)
# pylint: ignored-classes=some_class_name
Run Code Online (Sandbox Code Playgroud)

无论如何要在引用我想忽略的类的源文件中指定这个选项?谢谢。

python pylint

6
推荐指数
0
解决办法
1332
查看次数

有没有办法逆转 zmq pub/sub 上的绑定?

我在一个盒子上有服务器代码,需要监听来自另一个盒子的状态,其中大约有 10 个嵌入了 linux 的芯片。这 10 个芯片有自己的 IP 地址,每个芯片都会向服务器发送基本的健康状态,服务器可以(可能)用它做一些事情。

我希望服务器只是被动地监听而不必发送响应。所以,这看起来像是 zmq 的 pub/sub 的工作。其中,10 个芯片中的每一个都有自己的出版物,服务器将订阅每个。

但是,服务器需要知道每个芯片将其发布绑定到的众所周知的地址。但是,在现场,这些芯片可以交换或替换为不同的 IP 地址。

相反,让芯片知道服务器代码的 IP 地址更安全。

我想要一个 pub/sub,其中接收者是众所周知的地址。或者,客户端(芯片)向服务器(请求)发送消息的请求/响应模式,但服务器和芯片都不需要发送/接收响应。

现在,目前,单独的盒子上有两台服务器。所以,如果可能的话,我想要一个服务器和多台服务器的解决方案。

这在zmq中可能吗?那会是什么模式?

谢谢。

publish-subscribe zeromq

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

为什么zmq.setsockopt_string会抱怨默认的'ascii'代码?

我试图弄清楚我的开发环境是否以某种方式搞砸了,因为"它适用于[我的同事]计算机",但不是我的.我没有找到问题的"肉",而是在研究我发现的第一个有趣的事情.

我有一些代码,没有理由为什么一个调用可以工作,另一个不是:

import sys
import zmq

if __name__ == "__main__":
    print sys.getdefaultencoding()  # Displays 'ascii'

    zContext = zmq.Context()
    zSocket = zContext.socket(zmq.SUB)

    # This works.
    zSocket.setsockopt_string( zmq.SUBSCRIBE, "Hello".decode('ascii'))

    # This fails with error... why?
    # raise TypeError("unicode strings only")
    #
    # Shouldn't the default encoding for "Hello" be ascii?
    # zSocket.setsockopt_string( zmq.SUBSCRIBE, "Hello")

    zSocket.connect( "tcp://localhost:5000")
Run Code Online (Sandbox Code Playgroud)

我假设对setsockopt_string的工作调用,我传递的是ascii字符数组.在破碎的代码中,我必须发送不是ascii而不是unicode的东西.我怎么知道什么传递给setsockopt_string?

也许这甚至不是要问的问题.我只是很困惑.

任何帮助都会很棒.

这是我的环境:

python --version
Python 2.7.3
#1 SMP Debian 3.2.57-3+deb7u2 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

谢谢.

python encoding zeromq pyzmq

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

什么是POSIX shell相当于bash <<<

我有一个看起来像这样的变量:

msg="newton apple tree"
Run Code Online (Sandbox Code Playgroud)

我想将每个单词分配到单独的变量中.这在bash中很容易做到:

read a b c <<< $msg
Run Code Online (Sandbox Code Playgroud)

在POSIX shell中是否有一种紧凑,可读的方法?

bash sh

5
推荐指数
3
解决办法
786
查看次数

如何抑制期望发送输出?

我有一个期望脚本,我想表现为一个花哨的ssh程序,它可以在运行命令之前跳过几台机器并在目标机器上设置环境.

我可以使用log_user 0/1关闭/打开expect的输出,这有助于密码提示和登录横幅,以及设置环境的命令.

但是,就像ssh一样,一旦我的脚本开始发出命令,我不想看到发出的命令.那就是发送"command \n"后我不想看"命令".我想看到的只是命令的结果.

如何抑制发送输出,但不抑制结果?

这是期望脚本的片段:

log_user 1
foreach daline [lrange \$argv 0 end] {
   send "\$daline\r"
   set buffer1 
}
Run Code Online (Sandbox Code Playgroud)

所以在此循环之前,我发送密码和设置环境.然后在这个循环中,我运行每个bash命令,该命令被作为参数提供给expect.

谢谢.

expect

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

如何使用范围运算符进行标记连接?

我想做类似以下的事情:

#define CODE_BLOCK( id) \
    do { \
      someNameSpace::##id foo; \
      foo.ParseFromString( ...); \
      print_##id( foo);
    } while(0)
[...]
CODE_BLOCK( BlahStream); 
Run Code Online (Sandbox Code Playgroud)

所以基本上,我希望foo被声明为类型someNameSpace :: id,其中id宏参数.print_id在别处定义.无论如何,g ++抱怨消息:

error: pasting "::" and "BlahStream" does not give a valid preprocessing token
Run Code Online (Sandbox Code Playgroud)

有没有办法解决?

如果有帮助,foo来自某个用户定义的googleprotocol缓冲区.我的g ++版本是debian linux上的4.7.2.

谢谢.

c++

3
推荐指数
2
解决办法
537
查看次数

如何列出您在谷歌协议缓冲区中定义的属性?

我有一个谷歌协议缓冲区定义,看起来像跟随:

message Foo {
   required string Name = 1;
   optional string Address = 2;
   optional string NickName = 3;
   optional  int32  height = 4;
}
Run Code Online (Sandbox Code Playgroud)

现在在python中,我想列出上面的所有属性,但只列出那些属性.但是,交互式python,我看到谷歌定义了更多的字段.所以这似乎有问题.

我已经看了一些关于内省的stackoverflow帖子.有一个看起来不错的检查模块,但问题是谷歌协议缓冲区为我定义的其他成员.

有办法吗?

这就是我想做的事情.我有一个python实用程序,从命令行填写上述字段.我使用argparse,我会:

parser = argparse.ArgumentParser(...)
parser.add_argument( "--attribute_name", blah)
Run Code Online (Sandbox Code Playgroud)

我想将add_argument()放在循环中,并根据proto文件定义使其动态化.基本上,每次我更改proto文件时,我都不想继续修改实用程序的代码.好像我应该能够在python中做到这一点.我只是不知道如何.

有人有建议吗?

谢谢.

有关其他信息,我采用上面的示例,并使用protoc编译它.这是交互式输出:

>>> import hello_pb2
>>> h = hello_pb2.Foo()
>>> dir(h)
['ADDRESS_FIELD_NUMBER', 'Address', 'ByteSize', 'Clear', 'ClearExtension', 'ClearField', 'CopyFrom', 'DESCRIPTOR', 'FindInitializationErrors', 'FromString', 'HEIGHT_FIELD_NUMBER', 'HasExtension', 'HasField', 'IsInitialized', 'ListFields', 'MergeFrom', 'MergeFromString', 'NAME_FIELD_NUMBER', 'NICKNAME_FIELD_NUMBER', 'Name', 'NickName', 'ParseFromString', 'RegisterExtension', 'SerializePartialToString', 'SerializeToString', 'SetInParent', '_InternalParse', '_InternalSerialize', '_Modified', '_SetListener', '__class__', '__deepcopy__', …
Run Code Online (Sandbox Code Playgroud)

python introspection protocol-buffers argparse

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