在下面的例子中,我期望比特的交换.相反,第二位被覆盖,但为什么以及如何实现预期的行为呢?
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
bitset<2> test(string("10"));
cout << test; // Prints "10"
swap(test[0], test[1]);
cout << test; // Prints "11", why not "01"?
}
Run Code Online (Sandbox Code Playgroud) 所有开发人员都面临的一个非常基本的问题:每当用户提交表单时,密码都会通过网络发送,并且必须受到保护.我开发的网站没有HTTPS.所有者既不想购买SSL证书,也不想对自签名证书感兴趣.所以我想在提交表单时使用Javascript保护通过HTTP发送的密码.
渴望downvoters:如何通过HTTP安全地发送密码?不提供任何合理的解决方案,我处于另一种情况.
如果我使用MD5,可以反转该密码字符串.那怎么样的nonce/HMAC?任何可用的Javascript库吗?或者你有什么建议/提示要解决?提前致谢!
请考虑以下代码:
#include <vector>
struct A
{
explicit A(int i_) : i(i_) {}
int i;
};
int main()
{
std::vector<int> ints;
std::vector<A> As(ints.begin(), ints.end());
}
Run Code Online (Sandbox Code Playgroud)
上面应该编译吗?由于构造函数被标记,我的感觉是它不应该explicit.
Microsoft Visual C++同意,给出一个明确的错误消息: cannot convert from 'int' to 'const A'; Constructor for struct 'A' is declared 'explicit'
但是,使用Comeau的在线编译器,代码编译成功.
哪个是对的?
编辑:
有趣的是,更改vector为set(在添加operator <到A之后)会导致两个编译器都出错.
然而,改变vector<int>以map<int, int>及vector<A>对map<A, A>原因两种编译器接受代码!
在模型上使用Data Annotations时,我遇到了为客户端验证而发出的JavaScript的问题.这是一个模型的示例,它可以很好地处理两个必填字段,然后是发出的JavaScript:
public class LoginUserViewModel
{
[Required(ErrorMessage = "Email required")]
public string EmailAddress { get; set; }
[Required(ErrorMessage="Password required")]
public string Password { get; set; }
}
}
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }
window.mvcClientValidationMetadata.push({"Fields":[{"FieldName":"EmailAddress","ReplaceValidationMessageContents":true,"ValidationMessageId":"form0_EmailAddress_validationMessage","ValidationRules":[{"ErrorMessage":"Email required","ValidationParameters":{},"ValidationType":"required"}]},{"FieldName":"Password","ReplaceValidationMessageContents":true,"ValidationMessageId":"form0_Password_validationMessage","ValidationRules":[{"ErrorMessage":"Password required","ValidationParameters":{},"ValidationType":"required"}]}],"FormId":"form0","ReplaceValidationSummary":false});
//]]>
Run Code Online (Sandbox Code Playgroud)
一旦我在EmailAddress字段上添加了另一个属性(正则表达式属性),JavaScript就不再发出任何规则.请注意,在下面的JavaScript中,只有一个空数组,其中应该是规则.这是改变和脚本.有任何想法吗?
public class LoginUserViewModel
{
[Required(ErrorMessage = "Email required")]
[RegularExpression(@"^[a-z0-9]+([-+\.]*[a-z0-9]+)*@[a-z0-9]+([-\.][a-z0-9]+)*{2,4}$", ErrorMessage = "Invalid email format")]
public string EmailAddress { get; set; }
[Required(ErrorMessage="Password required")]
public string Password { get; set; }
}
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; } …Run Code Online (Sandbox Code Playgroud) 我有一个字符串值,并且希望仅获得工程师名称,例如在这种情况下为"CARL HARRISON".
"{ Engineer = CARL HARRISON, HandHeldAvailability = H, HASHHT = True, HHTSTATUS = }"
Run Code Online (Sandbox Code Playgroud)
名称可以是不同的长度,但总是以相同的格式.
我想要做的是在移动列表项后返回移动的li包含的文本.有没有办法做到这一点?谢谢
编辑:
我试过了$(ui.item).text()但是我得到了一个ui is not defined error(我只是进口了jquery.js,ui.core.js而且ui.sortable.js,我是否必须导入别的东西?)
HTML
<ul id="sortable">
<li><a href="" class="drag">text</a></li>
<li><a href="" class="drag">another text</a></li>
<li><a href="" class="drag">more text</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
JS
$(document).ready(function(){
$('ul#sortable').sortable({
handle:'.drag',
axis:'y',
update:function(){
alert($(ui.item).text());
}
});
});
Run Code Online (Sandbox Code Playgroud) 注意:编辑示例以反映我的实际问题,这是数组初始化中的尾随逗号.
似乎原始数组初始化和array.push的混合可能导致索引变得非常糟糕.
我这样做:
var iFeelLikeIt = true;
var items = ["thing1", "thing2",];
if (iFeelLikeIt) {
items.push("thing3");
}
items.push("thing4");
Run Code Online (Sandbox Code Playgroud)
在IE7中,(尚未检查6或8),我的数组看起来像:
实际上,它看起来更像是一个按数字键入的字典,其键为0,1,3,4.
我已经将我的代码更改为只是初始化一个空数组并根据需要将所有内容推送到它上面,并且它表现得非常清晰.但是想知道是否有人知道这种行为的正当理由?或者至少闻起来像是一个有效理由的蹩脚借口的东西.
我想转换List<Company>为List<ICompany>
ICompany是一个Company实现的接口.
public List<ICompany> FindAll()
{
List<Company> companies = new List<Company>();
var query = from c in _scope.Extent<Company>()
select c;
companies = query.ToList();
return companies.ToList<ICompany>(); // doesn't work
//and
return companies.ToList(); // doesn't work
}
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
我正在研究生成Excel文件的JasperReport报告.出于某种原因,我的单元格格式/类型不是它们应该如何.例如,我在单元格中有Date对象,但是当我生成Excel文件时,它将单元格类型设置为Number,或者Long类型是单元格中的文本,但单元格的格式是数字,并且当用户编辑日期单元格时(例如,日期为11/02)/2012更改为11/03/2012)它将日期转换为数字(41581.00).
这是我的代码(它只是将弹出流输出到带有报告的浏览器窗口):
public void generateXLSPopup(String tmpltFileLocation, Map<String, Object> params, Collection vo) {
log.fine("ReportEngine: Start Generate XLS Popup Report Function!");
Filename f = new Filename(tmpltFileLocation);
String xlsFileName = f.getFileName() + "_" + sDateFormated + ".xlsx";
try {
JasperPrint jasperPrint = getJRPrint(tmpltFileLocation, params, new JRBeanCollectionDataSource(vo));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JRXlsxExporter exporter = getCommonXlsxExporter();
exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, baos); // fill byte array output stream
exporter.exportReport();
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-disposition", "attachment; filename=" + xlsFileName);
response.setContentLength(baos.size());
response.getOutputStream().write(baos.toByteArray()); …Run Code Online (Sandbox Code Playgroud) 我有一个可以使用此代码构建的 JavaScript 数组
var Test = [];
Test.push([3, 2]);
Test.push([5, 7]);
Test.push([8, 1]);
Test.push([4, 10]);
Run Code Online (Sandbox Code Playgroud)
我需要做的是将每个项目中的第一个值更改为从 0 开始的顺序,结果应如下所示:
[0, 2]
[1, 7]
[2, 1]
[3, 10]
Run Code Online (Sandbox Code Playgroud)
我也会接受 jQuery 答案。
javascript ×3
.net ×2
arrays ×2
c# ×2
c++ ×2
asp.net-mvc ×1
collections ×1
constructor ×1
excel ×1
explicit ×1
generics ×1
hash ×1
hmac ×1
http ×1
iterator ×1
java ×1
jquery-ui ×1
linq ×1
security ×1
string ×1