小编ral*_*aul的帖子

如何在常量时间内实现字符串pop_back?

std::string pop_back() :删除字符串的最后一个元素

在C++规范中,据说C++ 11字符串类函数pop_back具有恒定的时间复杂度.

(更确切地说 - 未指定但通常不变)

http://www.cplusplus.com/reference/string/string/pop_back/

除此之外,我阅读了C++ 11规范的草案,据说它pop_back等于str.erase(str.length() -1).据我所知,擦除功能只需分配一个新的内存量,并将剩余的元素(未删除)复制到此内存中,这将占用线性时间.鉴于此,pop_back如何在恒定时间内完成.

c++ string erase c++11

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

VisualVM,用于分析在Tomcat上运行的应用程序

我在本地运行的apache tomcat 7和作为.war文件部署到此服务器的Web应用程序.我正在尝试使用visualvm来分析应用程序,但到目前为止我只能分析tomcat本身.

我能够在界面中看到关于tomcat的所有内容,并且绝对没有问题.我能够看到独立的tomcat函数,这对我来说毫无意义.

我想看到的是我部署的Web应用程序的功能的执行时间,换句话说就是我自己的代码.但我无法做到这一点?有没有人设法做这个分析?我是否需要使用已部署的应用程序设置JMX连接?下面你可以找到我能够描述tomcat功能的屏幕.

我的VisualVM屏幕,我能够配置tomcat

java tomcat visualvm war

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

Node.js 异步调用处理和多核扩展

众所周知,node.js 内部处理异步调用,程序员永远不需要关心后台发生了什么。据我所知,即使每个人都说 node.js 只是单线程,但内部 v8/libuv 库正在产生线程来处理程序的异步片段的执行。

我的问题是,如果产生这些线程,它们是否会扩展多核架构?我的意思是,如果我有一个 4 核的 CPU,并且我的主节点线程在其中一个 CPU 上运行,那么这些内部产生的线程是否会扩展到其他三个 CPU 而不会保留在同一个 CPU 上。从理论上讲,它们应该可以扩展,但由于每个人都说 node.js 开箱即用不使用多核,我认为这值得一问。

multithreading asynchronous multicore event-loop node.js

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

在ajax请求之后重新呈现EJS文件

我试图在点击href时对我的服务器进行Ajax调用.单击我的href后,我成功转到我的服务器并调用已定义的路径.我的路线正确地为我服务并将数据发回给我.下面是执行该操作的脚本.

$('.graph-switch').click(function (){

event.preventDefault();

   $.getScript("js/ejs_production.js", function()
       $.ajax({
           url:'/spiderSwitch',
           type: 'GET',
           data: { type: $(this).attr('href') },
           success: function(result){
                console.log(result); // correctly displayed
                // WHAT TO DO AT THIS POINT??
           },
           error: function(){
              alert("well this is not working");
           }
       });
   });
});
Run Code Online (Sandbox Code Playgroud)

此时我需要重新渲染我想要改变的部分.下面是我想要更改的HTML部分.

<div class="panel-body text-center"><% include partials/spider-chart.ejs %> </div>
Run Code Online (Sandbox Code Playgroud)

基本上我使用ejs的include关键字添加一个spider-chart.ejs文件.下面是spider-chart.ejs文件.

<!-- views/partials/spider-chart.ejs -->

<!--NOTE: host pages must include the following in <head>-->
<!--<script src='http://code.jquery.com/jquery-1.6.1.js'></script>-->
<!--<script src="scripts/SpiderChartControl.js"></script>-->

<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/highcharts-more.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<div id="chart" style="min-width: 300px; max-width: 1000px; height: 300px; margin: …
Run Code Online (Sandbox Code Playgroud)

javascript ajax ejs highcharts node.js

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

高级PDF解析是否适用于当前的软件?

我们有一个项目,我们希望实现,在这个项目中,我们需要处理PDF文件(不幸的是)并解析它们的内容.在过去的几天里,我们一直在研究很多不同的图书馆,我们尝试了很少的图书馆.

虽然情况确实如此,但我们仍然不知道我们是否能够完成这样的任务.基本上,PDF文档中的每个页面都包含6-7个问题,可能包含图像和5个多项选择答案.我们需要对这些问题进行细分,并进一步细分相关问题的多项选择答案.

我们发现PDFBox(Java)和PDFMiner(Python)是解析PDF的最可靠的库,但我个人认为创建一个满足我们要求的可靠系统将是非常困难的.这不是哪个库是最好的?问题,但更像是,如果这样的任务是可行的,目前在PDF解析世界中可以实现这样的高级要求?

当然,我对任何其他建议(图像处理,裁剪软件,手动裁剪等等)持开放态度,这可能有助于我们完成任务.

例如:页面上的6个:

问题格式

pdf parsing pdfbox pdfminer

5
推荐指数
0
解决办法
119
查看次数

使用react.js在服务器端呈现页面刷新后保持会话活动

虽然不确定这是否是特定于反应的问题:

我们正在使用带有服务器端渲染的react/redux堆栈进行开发和应用.用户登录后,我们会收到两个cookie,一个用于身份,一个用于浏览器中的会话(有一个到期日期).问题是当用户刷新页面时状态正在重置并且我们丢失了会话信息(我们基本上在状态中设置一些变量以指示用户已登录).

问题是如何管理这种情况并使用户即使刷新页面也能登录.我正在考虑将服务器端渲染完全排除在图片之外,并且在最初呈现页面时检查客户端是否有未过期的会话ID cookie,如果会话仍然存在则在状态中设置一些变量,并且副 - 否则.

这看起来像一个安全的方法吗?有没有更好的方法呢?

javascript reactjs server-side-rendering

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

使用Avro嵌套的特定类型反序列化

以下是我用于生成Avro类的架构的相关部分

{"namespace": "com.namespace.kafka.event",
 "type": "record",
 "name": "RecordName",
 "fields": [

    // some fields declared
    ...

    {"name": "products", "type": { "type": "array", "items": 
        {
            "name": "productInfo",
            "type": "record",
            "fields" : [
                {"name": "productId", "type": "int"},
                {"name": "productScore", "type": "float"}
            ]
        }
    }
},

// some more fields declared
...
Run Code Online (Sandbox Code Playgroud)

]}

我能够为这个模式生成类并填充它们.因此,基本上在生成中会生成一个名为productInfo的新类,它可以满足我的需求.(后来我将数据发送给Kafka).问题是反序列化.我使用的是这样的东西:

GenericData.Array<String> productTuple = (GenericData.Array<String>) record.get("products");
Run Code Online (Sandbox Code Playgroud)

这为GenericData数组的每个元素返回一个字符串(实际上是一个JSON).

{"productName" : someName, "productScore" : someScore }
Run Code Online (Sandbox Code Playgroud)

我可以解析这个字符串并得到我想要的东西但是有一种更"Avro"的方式来做到这一点.就像我可以将结果再次转换为像这样的GenericRecord对象.

GenericData.Array<GenericRecord> productTuple = (GenericData.Array<GenericRecord>) record.get("products");
Run Code Online (Sandbox Code Playgroud)

或者这将使用productInfo作为我的avro架构生成的类:

GenericData.Array<productInfo> productTuple = (GenericData.Array<productInfo>) 
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法测试它我没有一个简单的设置这样做.我搜索了整个网络,但找不到办法.任何帮助都感激不尽.

java serialization avro deserialization apache-kafka

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

使用多行stringfy宏生成getter / setter

我最近看到了一个很棒的c风格宏播放,它会自动为该类生成设置器/获取器。这就是我在说的。

#define BOOL_VARIABLE(name)\
    void set##name(bool iValue)\
    {\
        // set the boolean
    }\ 
    const bool get##name() const\
    {\
       // get the boolean
    }

    BOOL_VARIABLE(AVariableName); // and calling them inside the class
Run Code Online (Sandbox Code Playgroud)
  • 现在想一想所有的string / int / double等变量

我知道所有避免使用宏的注释类型,但实际上我觉得它很酷,因为较长的getter / setter行确实困扰着我。您能想到这种方法有什么问题吗?

c++ macros getter-setter

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