问题列表 - 第44075页

从std :: heap的中间删除一个元素

我正在使用优先级队列作为具有一个额外要求的调度程序.我需要能够取消预定的项目.这相当于从优先级队列的中间删除项目.

我无法使用std::priority_queue除了top之外的任何元素的访问受到保护.

我正在尝试使用algorithm堆函数.但我仍然错过了我需要的那件作品.当我从堆中间删除一个元素时,我希望它能够有效地重建它自己.C++提供了这些堆函数:

  • std::make_heap O(3N)
  • std::push_heap O(LG(n))的
  • std::pop_heap O(2 lg(n))

我想要一个像std::repair_heap大O < 3n这样的新功能.我将它提供了取消项目所在的洞的位置,它将适当地调整堆.

不提供std::repair_heap功能似乎是一个巨大的疏忽.我错过了一些明显的东西吗

是否有提供符合stl标准的库std::repair_heap

是否有更好的数据结构来建模调度程序?

注意:由于某些原因,
我没有使用std::map.

  • 堆具有恒定的内存开销.
  • 堆具有令人敬畏的缓存局部性.

c++ stl priority-queue data-structures

14
推荐指数
2
解决办法
6355
查看次数

如何测试(ActiveRecord)对象的相等性

Ruby 1.9.2on中Rails 3.0.3,我试图测试两个Friend(类继承自ActiveRecord::Base)对象之间的对象相等性.

对象相等,但测试失败:

Failure/Error: Friend.new(name: 'Bob').should eql(Friend.new(name: 'Bob'))

expected #<Friend id: nil, event_id: nil, name: 'Bob', created_at: nil, updated_at: nil>
     got #<Friend id: nil, event_id: nil, name: 'Bob', created_at: nil, updated_at: nil>

(compared using eql?)
Run Code Online (Sandbox Code Playgroud)

只是为了笑容,我还测试了对象身份,它失败了,正如我所料:

Failure/Error: Friend.new(name: 'Bob').should equal(Friend.new(name: 'Bob'))

expected #<Friend:2190028040> => #<Friend id: nil, event_id: nil, name: 'Bob', created_at: nil, updated_at: nil>
     got #<Friend:2190195380> => #<Friend id: nil, event_id: nil, name: 'Bob', created_at: nil, updated_at: nil>

Compared using …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord identity equality ruby-on-rails

51
推荐指数
3
解决办法
3万
查看次数

WPF在Closing事件中隐藏窗口阻止应用程序终止

一个简单的问题.

我在WPF中使用一个窗口作为子窗口,我宁愿让"X"按钮隐藏窗口而不是关闭窗口.为此,我有:

private void Window_Closing(object sender, CancelEventArgs e) {
   this.Hide();
   e.Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)

问题是当父窗口关闭时,它永远不会关闭并使应用程序保持活动状态.

有没有一个干净的方法来处理这个?我想到为我的所有用户控件(窗口)添加一个Kill标志:

public bool KillMe;

private void Window_Loaded(object sender, RoutedEventArgs e){
   KillMe = false;
}

private void Window_Closing(object sender, CancelEventArgs e) {
   this.Hide();
   if (!KillMe) e.Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)

然后在MainWindow_Closing()中,我必须将所有窗口KillMe标志设置为true.

还有什么比创建额外标志更好的方法而忘记在关闭之前设置它们?

c# wpf window hide

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

连接PDO时出现问题

这是我第一次将PDO用于测试目的.但是发生了一个奇怪的错误,谷歌搜索它,似乎很奇怪.

这是我的数据库测试类

class db extends PDO
{
    # Our instance.
    private static $db = NULL;

    # Calling the connector.
    public static function connect()
    {
        if (self::$db === NULL)
        {
            $class = __CLASS__;
            self::$db = new $class();
        }
        return self::$db;
    }

    # Connector.
    public function __construct() 
    { 
        $dns = 'mysql:dbname='.reg::get('db-name').';host='.reg::get('db-host');
        self::$db = new PDO($dns, reg::get('db-username'), reg::get('db-password'));
        reg::delete('db-password');
    }

    # Quick reporting
    public function reportError($array)
    {
        if ($this->db != NULL) { echo 'Myself getting horny'; } // Just for testing, i'm not …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

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

将两个整数作为一个整数传递

我有两个整数,我需要通过一个整数,然后得到两个整数的值.

我正在考虑使用逻辑运算符(AND,OR,XOR等).

logic xor

12
推荐指数
3
解决办法
8051
查看次数

R包的HTML帮助页面中的数字(R代码执行结果)

在R中编写包时,可以以Rd格式创建帮助页面,然后将它们转换为HTML页面.如果帮助页面包含示例代码,则会在"示例"部分中打印.

例如,包"stats"的函数"prcomp"有两个页面:

  1. 仅示例代码:http://stat.ethz.ch/R-manual/R-patched/library/stats/html/prcomp.html
  2. 示例代码+数字结果:http: //rgm2.lab.nig.ac.jp/RGM2/R_man-2.9.0/library/stats/man/prcomp.html

问题是如何生成R代码执行的结果,特别是包括输出数字?这对应于"结果"部分.

我使用以下命令将Rd转换为HTML:

R CMD Rdconv -t html $rdfile > $rdname.html
Run Code Online (Sandbox Code Playgroud)

这称为R函数http://stat.ethz.ch/R-manual/R-devel/library/tools/html/Rd2HTML.html.

我将不胜感激任何意见或建议.谢谢.

r package roxygen

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

PHP和MySQL:意外的T_VARIABLE

在18上获得意外的T_VARIABLE - while($ row = mysql_fetch_assoc($ fetchCourses)){

<?php include("config.php"); ?>

<html>
<head>
    <!-- Style Sheets -->
    <link rel="stylesheet" href="stylesheets/reset.css" type="text/css" media=screen />
    <link rel="stylesheet" href="stylesheets/style.css" type="text/css" media=screen />
</head>
<body>

<?php 

$fetchCourses = mysql_query("SELECT * FROM CourseMembers
                            LEFT JOIN Courses ON Courses.CourseID = CourseMembers.CourseID
                            WHERE CourseMembers.UserID = 1
                            ORDER BY Courses.CourseName ASC")

while ($row = mysql_fetch_assoc($fetchCourses)) {
    echo $row['CourseName'];
} ?>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

php mysql fetch

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

重试任务框架

我有很多情况需要在失败的情况下重试任务n次(有时使用某种形式的重试前退避逻辑).通常,如果抛出异常,则应重试该任务以达到最大重试次数.

我可以很容易地写一些东西来做这个相当一般,但不想重新发明轮子我想知道是否有人可以推荐任何框架.我唯一能找到的是:Ant Retry但我不想直接在我的应用程序中使用Ant任务.

谢谢

java

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

在$ _SESSION中添加数组

我有一个调查脚本,每页有3个问题.当用户回答第一页上的问题并单击下一步时,$_SESSION['survey']['data']通过执行以下操作存储上一页中的数据:

$data = postToArray($_POST, $ignore_fields);
$_SESSION['survey']['data'] = $data;
Run Code Online (Sandbox Code Playgroud)

$data 是一个看起来像这样的数组:

array('question' => 'answer', 'question' => 'answer');
Run Code Online (Sandbox Code Playgroud)

postToArray在返回之前,做一些检查并稍微操纵实际提交$data.

当用户在调查的第二页时,同样的事情发生了.我假设当$data被添加到会话时,$_SESSION['survey']['data'] = $data;如果'question'(密钥)不存在,它将附加到会话数组,但是如果它(因为用户转到上一页并更改了他们的答案),那么具有相同键的现有值将被覆盖,但是最后一页的提交将覆盖['data']会话中数组中的所有内容.来考虑一下,这非常有意义.

我尝试了各种各样的东西,比如检索$_SESSION['survey']['data'],将它存储在数组中,读取最后一个提交,合并数组,然后在SESSION中重新保存所有内容,但我的代码没有用 - 这种方法有意义吗?那可能吗?

我也试过了array_push,但那里没有运气.

另外,我尝试添加$_SESSION['survey']['data'][],至少保存所有内容(每个提交在自己的数组中),但是如果用户返回页面,他们更改和重新提交的任何值都将添加为另一个数组.

最好是,我想要一个包含所有问题/答案的巨型数组,并且它会不断添加到该数组并使用现有键覆盖任何值.

什么是最好的方法?

谢谢,-Ryan

实施的解决方案

$data = postToArray($_POST, $ignore_fields);
foreach($data as $question => $answer)
{
    $_SESSION['survey']['data'][$question] = $answer;
}
Run Code Online (Sandbox Code Playgroud)

php arrays session

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

NSRegularExpression用于验证URL

我在网站上找到了这个正则表达式.它被认为是最好的URL验证表达,我同意.Diego Perini创造了它.

我面临的问题是尝试使用它objective-C来检测字符串上的URL.我一直在使用类似的选项尝试NSRegularExpressionAnchorsMatchLines,NSRegularExpressionIgnoreMetacharacters和其他人,但仍没有运气.

表达式格式不正确Objective-C吗?我错过了什么吗?有任何想法吗?

我也试过了John Gruber的正则表达式,但它失败了一些无效的URL.

        Regular Expression                                  Explanation of expression                      

 ^                                                  match at the beginning
//Protocol identifier
(?:
    (?:https?|ftp                                   http, https or ftp
    ):\\/\\/                                        ://
)?                                                  optional
// User:Pass authentication
(?:
    ^\\s+                                           non white spaces, 1 or more times
    (?:
        :^\\s*                                      : non white spaces, 0 or more times, optionally
    )?@                                             @
)?                                                  optional
//Private IP Addresses                              ?! Means DO NOT MATCH ahead. So do not match any of the following …
Run Code Online (Sandbox Code Playgroud)

regex iphone objective-c

5
推荐指数
2
解决办法
6081
查看次数