程序设计

专业和发烧友程序员的问答


13
您不应该继承std :: vector
好的,这确实很难让人承认,但是目前我确实有很强的诱惑力可以继承std::vector。 我需要大约10种针对矢量的自定义算法,并且希望它们直接成为矢量的成员。但是我自然也希望拥有的其余std::vector界面。好吧,作为守法公民,我的第一个想法是std::vectorMyVector班级成员。但是然后我将不得不手动重新提供所有std :: vector的接口。输入太多。接下来,我考虑了私有继承,因此我将using std::vector::member在公共部分写一堆,而不是提供方法。其实这也很乏味。 在这里,我确实确实认为我可以简单地从公开继承std::vector,但是在文档中提供警告,该类不应被多态使用。我认为大多数开发人员都有足够的能力来理解,无论如何都不应多态地使用它。 我的决定绝对不合理吗?如果是这样,为什么?您能否提供一种替代方法,使其他成员实际成为成员,而不涉及重新键入vector接口的所有内容?我对此表示怀疑,但如果可以的话,我会很高兴。 此外,除了一些白痴可以写类似的事实 std::vector<int>* p = new MyVector 使用MyVector 还有其他现实的危险吗?通过说现实,我舍弃了像想象一个需要指向矢量指针的函数之类的事情。 好吧,我已经说了我的案子。我犯罪了。现在由你来原谅我:)
189 c++  oop  inheritance  stl  vector 

6
如何在php中创建可选参数?
在PHP手册中,为了显示带有可选参数的函数的语法,它们在每组相关的可选参数周围使用方括号。例如,对于该date()功能,手册内容如下: string date ( string $format [, int $timestamp = time() ] ) 哪里$timestamp是可选参数,当留空时,它默认为time()函数的返回值。 在PHP中定义自定义函数时,如何创建这样的可选参数?
189 php 

23
部署网站:500-内部服务器错误
我正在尝试部署ASP.NET应用程序。我已经将该站点部署到了IIS,但是当使用浏览器访问它时,它向我显示了这一点: 服务器错误 500内部服务器错误。 您正在寻找的资源有问题,无法显示。 摆弄了web.config之后,我得到了: 由于发生内部服务器错误,因此无法显示该页面。 如何查看此服务器错误背后的实际问题?

9
PHP中的GET URL参数
我正在尝试将URL作为php中的url参数传递,但是当我尝试获取此参数时我什么也没收到 我正在使用以下网址形式: http://localhost/dispatch.php?link=www.google.com 我试图通过它: $_GET['link']; 但是什么也没回来。问题是什么?
189 php  url  redirect 

1
在LaTeX中引用表格
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 5年前关闭。 改善这个问题 如何引用一个表号,例如得到Table 7? 样本数据 Table \ref{table:questions} lorem lorem ipsun. \begin{table} \label{table:questions} \begin{tabular}{| p{5cm} | p{5cm} | p{5cm} |} -- cut -- \end{tabular} \end{table} 我懂了 Table 2.5 lorem lorem ipsun. 其中2.5是章节编号。
189 latex 

10
同步编程和异步编程之间有什么区别(在node.js中)
我一直在阅读nodebeginner, 并且遇到了以下两段代码。 第一个: var result = database.query("SELECT * FROM hugetable"); console.log("Hello World"); 第二个: database.query("SELECT * FROM hugetable", function(rows) { var result = rows; }); console.log("Hello World"); 我得到了他们应该做的事情,他们查询数据库以检索查询的答案。然后console.log('Hello world')。 第一个应该是同步代码。第二个是异步代码。 这两部分之间的区别对我来说很模糊。输出是什么? 搜寻异步编程也没有帮助我。



4
以编程方式配置Log4j记录器
我正在尝试log4j第一次使用SLF4J(带绑定)。 我想配置3个不同的命名Logger,它们可以由LoggerFactory返回,LoggerFactory将记录不同的级别并将消息推送到不同的附加程序: 记录器1“ FileLogger”记录调试并附加到 DailyRollingFileAppender 记录器2“ TracingLogger”记录TRACE +并附加到 JmsAppender 记录器3“ ErrorLogger”记录ERROR +并追加到其他记录器 JmsAppender 此外,我希望以编程方式配置它们(使用Java,而不是XML或log4j.properties文件)。 我想通常,我会Logger在一些自举代码中的某处(如init()方法)定义这些。但是,因为我想使用slf4j-log4j,所以对于在哪里定义记录器并使它们可用于类路径感到困惑。 我不认为这违反了SLF4J的基本目的(作为外观),因为我使用SLF4J API的代码永远不会知道这些记录器存在。我的代码只是对SLF4J API进行了常规调用,然后将它们转发到它在类路径中找到的log4j Logger。 但是,如何在Java中的类路径上配置这些log4j Logger?
189 java  logging  log4j  slf4j 

5
什么是不归路?
[dcl.attr.noreturn]提供以下示例: [[ noreturn ]] void f() { throw "error"; // OK } 但我不明白这是什么意思[[noreturn]],因为该函数的返回类型已经存在void。 那么,该noreturn属性的意义是什么?应该如何使用?

1
我需要用bcrypt存储盐吗?
bCrypt的javadoc具有以下用于加密密码的代码: String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); 要检查纯文本密码是否与先前已哈希的密码匹配,请使用checkpw方法: if (BCrypt.checkpw(candidate_password, stored_hash)) System.out.println("It matches"); else System.out.println("It does not match"); 这些代码段向我暗示,随机生成的盐将被丢弃。是这种情况,还是只是误导性的代码片段?


5
为移动应用程序创建API-身份验证和授权
总览 我正在为我的应用程序创建一个(REST)API。最初/主要目的是供移动应用程序(iPhone,Android,Symbian等)使用。我一直在研究基于Web的API的身份验证和授权的不同机制(通过研究其他实现)。我已经把大部分基本概念都束之高阁,但仍在一些方面寻求指导。我想做的最后一件事是重新发明轮子,但是我没有找到任何适合我标准的标准解决方案(但是我的标准可能会被误导,因此也随时可以批评我)。另外,我希望所有使用它的平台/应用程序的API都相同。 oAuth 我会继续反对oAuth,因为我知道这可能是第一个提供的解决方案。对于移动应用程序(或更确切地说是非Web应用程序),离开应用程序(转到Web浏览器)进行身份验证似乎是错误的。另外,浏览器无法(我知道)将回调返回给应用程序(尤其是跨平台)。我知道有几个应用程序可以做到这一点,但是感觉不对,并中断了应用程序UX。 要求 用户在应用程序中输入用户名/密码。 每个API调用均由调用应用程序标识。 开销降至最低,并且对于开发人员而言,auth方面很直观。 该机制对于最终用户(不公开其登录凭据)和开发人员(不公开其应用程序凭据)都是安全的。 如果可能,则不需要https(绝不是硬要求)。 我当前的实施思想 外部开发人员将请求一个API帐户。他们将获得一个apikey和apisecret。每个请求至少需要三个参数。 apikey-在注册时提供给开发人员 时间戳-兼用作给定apikey的每个消息的唯一标识符 hash-时间戳+ apisecret的哈希 需要apikey来标识发出请求的应用程序。时间戳记的行为与oauth_nonce类似,并且避免/减轻了重播攻击。哈希确保请求实际上是从给定apikey的所有者发出的。 对于经过身份验证的请求(代表用户的请求),我仍然不确定要使用access_token路由还是使用用户名和密码哈希组合。无论哪种方式,在某个时候都将需要用户名/密码组合。因此,当这样做时,将使用多个信息(apikey,apisecret,时间戳)和密码的哈希。 我希望在这方面提供反馈。 仅供参考,他们必须先对密码进行哈希处理,因为我不会在不进行哈希处理的情况下将密码存储在系统中。 结论 仅供参考,这并不是要求通常如何构建/结构化API,而仅仅是要求如何仅从应用程序内部处理身份验证和授权。 随机想法/奖金问题 对于仅要求将apikey作为请求的一部分的API,如何防止apikey所有者以外的其他人看到apikey(因为是明文发送的),并提出过多的请求以使它们超过使用限制?也许我只是在考虑这个问题,但是不应该有什么东西可以验证对apikey所有者进行了验证的请求吗?在我的情况下,这是apisecret的目的,它不会被散列而不会显示/传输。 说到哈希,md5 vs hmac-sha1呢?当所有值都用足够长的数据(即apisecret)进行哈希处理时,真的重要吗? 我以前一直在考虑向用户密码哈希添加每用户/行盐。如果要这样做,应用程序如何能够在不知道使用盐的情况下创建匹配的哈希?

8
连接两个向量的最佳方法是什么?
我正在使用多重踩踏,并且想要合并结果。例如: std::vector<int> A; std::vector<int> B; std::vector<int> AB; 我希望AB必须按此顺序处理A的内容和B的内容。做这样的事情最有效的方法是什么?
189 c++  vector 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.