如果我们需要实现一个取整数数组并返回集合中最大整数的函数,假设数组的长度小于1000.你会使用冒号排序或合并排序吗?为什么?
此外,如果数组长度大于1000,上述算法选择会发生什么?我对为什么我应该使用特定算法而不是另一个算法有点困惑.是否仅仅因为其复杂性和时间或其他因素也参与其中?如果我必须测试上面的函数并且需要花费更多时间来使用简单的算法并且花费更少的时间来复杂的算法呢?
以下是XML示例代码.
<m:ad xmlns:m="http://www.w3c.org/soap">
<title><![CDATA[TITLE]]></title>
<phone>123456789</phone>
<attributeGroup>
<attribute id="14" name="A1">40</attribute>
<attribute id="15" name="A2">50</attribute>
</attributeGroup>
</m:ad>
Run Code Online (Sandbox Code Playgroud)
我只知道PHP XMLReader来获取价值
$reader = new XMLReader();
if ($reader->name == "title" && $reader->nodeType ==XMLReader::ELEMENT) {
echo $reader2->read(); // will get TITLE
}
Run Code Online (Sandbox Code Playgroud)
但是如何获得属性A1,A2.我想得到40和50两个.
情况是我正在对远程服务器进行WCF调用,该服务器将XML文档作为字符串返回.
大多数时候这个返回值是几K,有时几十K,非常偶尔几百K,但很少可能是几兆(第一个问题是我无法知道).
正是这些罕见的场合引起了悲伤.我得到一个开始的堆栈跟踪:
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Xml.BufferBuilder.AddBuffer()
at System.Xml.BufferBuilder.AppendHelper(Char* pSource, Int32 count)
at System.Xml.BufferBuilder.Append(Char[] value, Int32 start, Int32 count)
at System.Xml.XmlTextReaderImpl.ParseText()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlReader.ReadElementString()
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMDRQuery.Read2_getMarketDataResponse()
at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer2.Deserialize(XmlSerializationReader reader)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
Run Code Online (Sandbox Code Playgroud)
我已经阅读了,因为大对象堆刚刚变得过于分散,所以即使在调用之前快速检查StringBuilder.EnsureCapacity只会导致OutOfMemoryException被提前抛出(因为我猜测需要什么) ,它可能实际上并不需要那么多,所以我的检查引起的问题比它解决的问题多得多.有些意见认为我无能为力.
我问过自己的一些问题:
我刚刚在我的项目中安装了ZenTest来使用自动测试.我使用rspec并在其中有一个integration文件夹.因为我不想每次都运行我的集成测试,所以我开始使用autospec,所以我想以某种方式限制autospec在该文件夹中运行测试.
如何从/ aut中排除/ spec中选择的文件夹?
我在我的 Windows 机器上安装了最新的 GNU make。
安装程序决定将语言设置为操作系统语言,但我没有收到提示。我希望它是英文的。我的操作系统是瑞典语。
我记得我在另一个 GNU 程序中遇到了类似的问题(不记得是哪个),这是通过添加环境变量“lang”和值“c”来解决的。
如何将 GNU make 的语言切换为英语?
如何将方法(执行+ b并返回结果)从add(a,b)转换为a.add(b)?
我在某个地方读到这个,我不记得所谓的技术是什么......
它取决于语言吗?
这可能在JavaScript中?
我试图找出一个正则表达式,匹配任何8个符号的字符串,不等于"00000000".
谁能帮我?
谢谢
具有某种反射/内省规范的语言的巨大好处之一是可以从各种来源自动构建对象.
例如,在Java中,我可以使用相同的对象来持久化到db(使用Hibernate),序列化为XML(使用JAXB),以及序列化为JSON(json-lib).您可以在Ruby和Python中执行相同的操作,通常也遵循一些简单的Java属性或注释规则.
因此,我不需要很多"域转移对象".我可以专注于我正在工作的领域.
它似乎在像Haskell和Ocaml这样非常严格的FP中,这是不可能的.特别是Haskell.我唯一看到的是进行某种预处理或元编程(ocaml).只是接受你必须从底部向上进行所有转换吗?
换句话说,您必须做很多无聊的工作才能将haskell中的数据类型转换为JSON/XML/DB Row对象,然后再转换回数据对象.
我正在使用gcc.我知道当我们销毁由基类指针指向的派生类对象时,虚拟析构函数如何解决问题.我想知道它们是如何工作的?
class A
{
public:
A(){cout<<"A constructor"<<endl;}
~A(){cout<<"A destructor"<<endl;}
};
class B:public A
{
public:
B(){cout<<"B constructor"<<endl;}
~B(){cout<<"B destructor"<<endl;}
};
int main()
{
A * a = new B();
delete a;
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我将A的析构函数更改为虚函数时,问题就解决了.什么是内部工作.为什么我要将A的析构函数设为虚拟.我想知道A和B的vtable会发生什么?
我想开发一个iphone re-dialer应用程序,因为它包含所需的电话控制API,因此需要coretelephony.framework.但是我无法对coretelephony.framework的类转储进行类转换,因为它是C头.任何人都可以帮我转储coretelephony框架的标题吗?
提前致谢.
c# ×2
c++ ×2
algorithm ×1
autotest ×1
bubble-sort ×1
c ×1
gnu-make ×1
haskell ×1
iphone ×1
javascript ×1
mergesort ×1
mingw ×1
objective-c ×1
ocaml ×1
php ×1
regex ×1
restriction ×1
rspec ×1
wcf ×1
xml ×1