我目前正在尝试理解各种语言的迭代器的内在函数,即它们的实现方式.
例如,有以下类公开列表接口.
template<class T>
class List
{
public:
virtual void Insert( int beforeIndex, const T item ) throw( ListException ) =0 ;
virtual void Append( const T item ) =0;
virtual T Get( int position ) const throw( ListException ) =0;
virtual int GetLength() const =0;
virtual void Remove( int position ) throw( ListException ) =0;
virtual ~List() =0 {};
};
Run Code Online (Sandbox Code Playgroud)
根据GoF,实现可以支持不同类型遍历的迭代器的最佳方法是使用可以访问List成员的受保护方法创建基类Iterator类(List的朋友).Iterator的具体实现将以不同的方式处理作业,并通过基接口访问List的私有和受保护数据.
从这里开始,事情变得令人困惑.说,我有类LinkedList和ArrayList,都是从List派生的,并且还有相应的迭代器,每个类都返回.我该如何实现LinkedListIterator?我完全没有想法.基础迭代器类可以从List中检索哪种数据(这只是一个接口,而所有派生类的实现差异很大)?
如果您向DB2/zOS引擎DBA询问有关DB2行为的问题,那么DBA会将DB2引擎称为"他",就像水手使用"她"来引用他的船一样.
例如:"一旦你填充了自由空间,DB2仍然希望在表空间中以簇的顺序保留这些行.这就是为什么他将该页面分成两半,你最终得到了很多半空页面.也就是说,除非您刚插入的行的群集键是表中最高的,在这种情况下,他会创建一个新的空页,并且只将您的新行放入该页面.所以我不必这样做REORG如果你只是像我建议的那样对你的输入进行排序."
有谁知道这个传统来自哪里?
鉴于:
case class FirstCC {
def name: String = ... // something that will give "FirstCC"
}
case class SecondCC extends FirstCC
val one = FirstCC()
val two = SecondCC()
Run Code Online (Sandbox Code Playgroud)
我怎样才能"FirstCC"从one.name和"SecondCC"从two.name?
大约一年前问了一个类似的问题并回答了问题,但这个问题要么是一个不同的问题(一切都处于测试阶段),要么被误诊.它位于此处:MSbuild任务失败,因为"任何CPU"解决方案是按顺序构建的.
我的问题是我有一个wix安装程序项目,并且在星期一升级到Tfs2010后,构建在链接时失败,因为它无法在项目中找到Wpf应用程序的构建产品.经过一番挖掘,这是因为它还没有建成.Vs2010中的建筑工作正常.wix项目设置为依赖于Wpf项目,在IDE中查看Project Build Order时,一切看起来都很正常.
最初只遇到解决方案中的两个平台定义就遇到了这个问题; x86和x64.还有两种版本,Debug和Release,TFSBuild.proj设置为构建所有四种组合.任何地方都没有AnyCPU.根据上面引用的问题,我尝试更改Wpf项目以使用AnyCPU,以便首先构建它.此时,wix项目使用了确切的配置,Wpf项目使用了AnyCPU的flavor.但是,这样做似乎没有任何改变.
我正在使用Tfs2010 RTM,Vs2010 RTM和最新版本的Wix,在撰写本文时为2010年1月2日的3.5.1602.0.其他人遇到这个?
2010-04-27:在克隆的VM构建机器上进行了大量的挖掘和再现之后,我相信我知道发生了什么以及发生了什么失败,但我不知道如何解决它.
情况是,这个错误似乎表现出基于解决方案文件中纯粹的运气抽奖项目排序的症状.似乎解决方案文件只是按照它们出现的顺序盲目地构建项目,依赖于它能够检测未构建的引用并在需要时根据需要构建它们.
在我的特定解决方案文件中,我的Wix项目是在我的Wpf应用程序项目之前订购的.这导致了维克斯项目中第一个建成,而被正确检测到对WPF项目的依赖,实际MSBuild任务被跳过,因为未定义$(BuildProjectReferences)可变的我提了几个意见下来,从这个主哨线.随着MSBuild的详细程度仍然在诊断,BuildProjectReferences可以看作是不确定的建设维克斯项目,可以看出定义在建设任务中的WPF项目打造的维克斯项目为真.然而,在测试时,它再次评估undefined,跳过任务,并且Wix构建失败,因为它无法找到未构建的Wpf项目的构建输出.
所以底线:由于错误的$(BuildProjectReferences)变量而跳过了项目依赖项.有趣的是,此变量仅存在于Wix2010.targets文件中,而不存在于wix.targets中; 我猜这就是为什么在我安装Tfs2010和Vs2010之后就出现了这个问题.
解决方案:如何确保将BuildProjectReferences正确传递给后续的MSBuild任务?变量范围有什么特别之处吗?
2010-09-14:一个错误是打开这一问题在WiX的工具集:http://sourceforge.net/tracker/?func=detail&atid=642714&aid=2990231&group_id=105970和固定前一阵子.希望这不再是一个问题.如果是这样,请打开一个新的错误.
为了直接解决您的评论,我的解决方案中没有任何内容在其构建文件中具有AnyCPU配置.我创建AnyCPU配置只是为了测试我在原始帖子中链接到的线程所建议的解决方案.在它不起作用后,我再次删除了AnyCPU配置.
此外,项目在同一个解决方案文件中,但是在单独的解决方案文件夹(界面文件夹,安装程序文件夹)中,如果这很重要.
有趣的是,我打算制作一个小沙箱示例,以便我可以说明我遇到的问题,但是在创建我的小样本解决方案后,我无法重现错误.这让我觉得,也许这是使用从一个Tfs2008团队项目升级,而不是在TFS2010创建一个新的团队项目的结果.如果我无法弄清楚测试解决方案的工作原理,我可以尝试将我的项目分支到一个新项目来测试这个理论.
ps也,我是stackoverflow的新手 - 如果"回答你自己的问题"工作流程只是为了提供具体的答案,为什么地球上的评论篇幅有限?
因此,我将构建详细程度提升到诊断状态并在今天阅读,特别是一条线对我来说很突出:
Task "MSBuild" skipped, due to false condition; ('@(_ProjectReferenceWithConfiguration)'!='' and '$(BuildingInsideVisualStudio)' != 'true' and '$(BuildProjectReferences)' == 'true' and '@(_MSBuildProjectReferenceExistent)' != '') was evaluated as ('..\WpfApp\WpfApp.csproj'!='' and '' != 'true' and '' == 'true' and '..\WpfApp\WpfApp.csproj' != '').
Run Code Online (Sandbox Code Playgroud)
这被视为我的安装程序项目试图构建我的wpf项目,因为引用了wpf项目.特别是,出于某种原因,$(BuildProjectReferences)正在评估''当我非常确定它应该是'真'时.
但是在日志的早期,在WpfApp项目的MSBuild任务开始时,我看到了:
Task "MSBuild" (TaskId:15)
...
Initial Properties:
...
BuildProjectReferences = true
Run Code Online (Sandbox Code Playgroud)
所以在任务开始之前,该属性确实是正确的,但后来显然被覆盖了?关于如何设置这些属性,我有点不清楚.
我试图通过在ASP.net网站中使用反射来创建类的实例.类ClassName已定义并位于App_code文件夹中.以下行返回null,可能是错误的.
Type type = Type.GetType("NameSpace.ClassName", false, true);
Run Code Online (Sandbox Code Playgroud) 我正在运行Perl 5.10.0和Postgres 8.4.3,并将字符串放入DBIx :: Class后面的数据库中.
这些字符串应该是UTF-8,因此我的数据库以UTF-8运行.不幸的是,其中一些字符串很糟糕,包含格式错误的UTF-8,所以当我运行它时我得到一个例外
DBI Exception: DBD::Pg::st execute failed: ERROR: invalid byte sequence for encoding "UTF8": 0xb5
我认为我可以简单地忽略无效的那些,并且稍后担心格式错误的UTF-8,所以使用这个代码,它应该标记并忽略坏标题.
if(not utf8::valid($title)){
$title="Invalid UTF-8";
}
$data->title($title);
$data->update();
Run Code Online (Sandbox Code Playgroud)
但是Perl似乎认为字符串是有效的,但它仍然会抛出异常.
如何让Perl检测出坏的UTF-8?
现在我正在设置Linker/Advanced/KeyFile选项.
我收到"mt.exe:一般警告810100b3:是一个强名称签名的程序集,并且嵌入清单会使签名无效.您需要重新签名此文件才能使其成为有效的程序集." .
从网上阅读,听起来我必须设置延迟签名选项,下载SDK,并运行sn.exe作为后期构建事件.当然在VS2010中必须有一种更简单的方法来执行这种常见操作?
在VBA编程方面,我是一个初学者.
我有一个宏,它根据一个单元格中的值隐藏或显示列:
Sub HideColumnsMacro()
Range("b8:o8").EntireColumn.Hidden = False
v1 = Range("b2").Value + 1
If v1 < 12 Then
With Range("b8")
Range(.Offset(0,v1), .Offset(0, 12)).EntireColumn.Hidden = True
End With
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
我想在更改不同工作表上的单元格时能够获得相同的功能.有没有一种方法可以告诉这个Macro在这张表上运行,当它从另一张表运行时?
我有句
something about something 字 still something...
从php中的句子中删除单词" WORD " 的最有效方法是什么?谢谢