假设我有一个向量:
0 1 2 3 4 5
[45,89,22,31,23,76]
Run Code Online (Sandbox Code Playgroud)
以及其指数的排列:
[5,3,2,1,0,4]
Run Code Online (Sandbox Code Playgroud)
有没有一种有效的方法来根据排列求助它,从而获得:
[76,31,22,89,45,23]
Run Code Online (Sandbox Code Playgroud)
最多使用O(1)额外空间?
连接String对象列表的最佳方法是什么?我想这样做:
List<String> sList = new ArrayList<String>();
// add elements
if (sList != null)
{
String listString = sList.toString();
listString = listString.subString(1, listString.length() - 1);
}
Run Code Online (Sandbox Code Playgroud)
我不知何故发现这比使用StringBuilder/StringBuffer方法更整洁.
有什么想法/意见吗?
我有一个小的对象层次结构,我需要通过套接字连接进行序列化和传输.我需要序列化对象,然后根据它的类型反序列化它.有没有一种简单的方法在C++中实现这一点(就像在Java中一样)?
是否有任何C++序列化在线代码示例或教程?
编辑:为了清楚,我正在寻找将对象转换为字节数组,然后返回到对象的方法.我可以处理插座传输.
考虑这种情况:我有3层应用程序,当用户点击按钮时,按钮事件处理程序调用biz层中的方法,该方法对我的按钮事件处理程序提供的数据执行任何操作,然后将该数据传递给发送的数据Access层他们到后端数据库.问题是在哪里放试试?在数据层,在商业层,在表示层或可能把它放在所有这些?在这种情况下,表示异常处理的最佳策略是什么?
我有一个Cygwin bash脚本,我需要在某些条件下观察和终止 - 特别是在创建某个文件后.但是,我很难确定如何以与Ctrl + C完全相同的完整性来终止脚本.
这是一个简单的脚本(称为test1),只需要等待即可终止.
#!/bin/bash
test -f kill_me && rm kill_me
touch kill_me
tail -f kill_me
Run Code Online (Sandbox Code Playgroud)
如果此脚本在前台运行,则Ctrl + C将终止tail脚本本身.如果脚本在后台运行,则a kill %1(假设它是作业1)也将终止tail脚本和脚本.
但是,当我尝试从脚本执行相同的操作时,我发现只有bash运行脚本的进程被终止,而tail挂起则与其父进程断开连接.这是我试过的一种方式(test2):
#!/bin/bash
test -f kill_me && rm kill_me
(
touch kill_me
tail -f kill_me
) &
while true; do
sleep 1
test -f kill_me && {
kill %1
exit
}
done
Run Code Online (Sandbox Code Playgroud)
如果运行此命令,则后台运行的bash子shell会终止,但tail仍然会挂起.
如果我使用明确单独的脚本,像这样,它仍然无法工作(test3):
#!/bin/bash
test -f kill_me && rm …Run Code Online (Sandbox Code Playgroud) NGen对我的计算机不满意,我无法找到一种方法来深入了解出了什么问题.
每次启动后,ngen都会记录以下消息:
.NET运行时优化服务(clr_optimization_v2.0.50727_32) - 服务达到了瞬态错误的限制.将关闭.从Service Manager返回的上一个错误:0x8000ffff.
当我尝试在命令行启动优化服务时,我会再次记录相同的错误.
我设法启动了ngen服务并立即暂停队列(通过编写两行批处理文件,如下所示:
net start clr_optimization_v2.0.50727_32
ngen队列暂停
所以现在我尝试通过执行不同状态级别的项目来清除队列,如下所示:
ngen executionqueueditems 3/nologo/verbose
但结果总是:
灾难性故障(HRESULT异常:0x8000FFFF(E_UNEXPECTED))
...沿途我已经卸载/重新安装了visual studio 2008.我已经卸载了SQL Server 2005,并且我运行了'系统文件检查器':sfc/scannow
缺乏想法,并希望得到ngen专家的帮助.
我如何获得诸如"导致这些灾难性故障的原因?"等信息.(请注意,/ verbose选项不会增加我发现的信息量."队列中要生成哪些文件?" - 我可以删除其中的一些文件,或者将责任归咎于特定文件. ..
卸载并重新安装.net framework 2.0并不容易,因为这是vista,它是操作系统的受保护部分.
更新:我也尝试了这里提供的建议(并在第一个回复中提到) - 但我只是得到了相同的灾难性失败消息.
C:\ Windows\Microsoft.NET\Framework\v2.0.50727> ngen executequeueditems/nologo灾难性故障(HRESULT异常:0x8000FFFF(E_UNEXPECTED))
我试图取代这个:
void ProcessRequest(object listenerContext)
{
var context = (HttpListenerContext)listenerContext;
Uri URL = new Uri(context.Request.RawUrl);
HttpWebRequest.DefaultWebProxy = null;
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(URL);
httpWebRequest.Method = context.Request.HttpMethod;
httpWebRequest.Headers.Clear();
if (context.Request.UserAgent != null) httpWebRequest.UserAgent = context.Request.UserAgent;
foreach (string headerKey in context.Request.Headers.AllKeys)
{
try { httpWebRequest.Headers.Set(headerKey, context.Request.Headers[headerKey]); }
catch (Exception) { }
}
using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
Stream responseStream = httpWebResponse.GetResponseStream();
if (httpWebResponse.ContentEncoding.ToLower().Contains("gzip"))
responseStream = new GZipStream(responseStream, CompressionMode.Decompress);
else if (httpWebResponse.ContentEncoding.ToLower().Contains("deflate"))
responseStream = new DeflateStream(responseStream, CompressionMode.Decompress);
MemoryStream memStream = new MemoryStream();
byte[] respBuffer …Run Code Online (Sandbox Code Playgroud) 我总是觉得令人沮丧的一件事是我不再维护我使用的库.即使事先查看更新历史记录和社区,我也遇到过后来检查的情况,发现我使用的版本是最后一个版本.
通常这会在几个月过去之后被忽视,或者已经发现了一些错误/限制.我在Python中进行编码时经常会遇到这种情况,因为我希望升级到新版本的解释器很容易在以前运行良好的库中引入问题.我的问题是:对这种情况的最佳回应是什么?
你成为旧图书馆的维护者吗?即使你只修复了你关心的错误,这仍然是很多工作.特别是如果库很大,很复杂,并且编写的代码不够精确(通常情况下).
你切换到另一个库(如果有的话)?这也是一项重大任务,有可能引入新的错误,特别是如果唯一的替代方案从不同的角度解决问题.即使您有远见为旧库的功能编写抽象层,也可能如此.
你自己滚吗?它可能最终会比旧库更少代码,因为您只编写您关心的部分.因此,将来更容易维护.但是现在你已经浪费了几天/几周/几个月来生产可能功能较少的东西,并且保证会引入大量的新bug.
我意识到答案取决于具体情况:库的大小,源是否可用,可维护性,代码使用的程度,代码依赖程度等等,我正在寻找答案跨越一系列案例.你对这个问题有什么经验?
我有一个名为A,B ... X,Y,Z的值数组.尽管表中有26列我会忍不住觉得有更好的方法.我考虑过创建第二个表,其中第一个表的id为id,数组中项的id,然后是布尔值,但它看起来很笨拙而且令人困惑.
有没有更好的办法?
有兴趣描述最常用的ASP.NET httpmodules,它解决了webapp的特定问题.
欢迎提供最佳实践和现场使用.