问题列表 - 第14296页

具有嵌入式函数调用的C++输出评估顺序

我是一个介绍C++类的TA.上周在测试中询问了以下问题:

以下程序的输出是什么:

int myFunc(int &x) {
   int temp = x * x * x;
   x += 1;
   return temp;
}

int main() {
   int x = 2;
   cout << myFunc(x) << endl << myFunc(x) << endl << myFunc(x) << endl;
}
Run Code Online (Sandbox Code Playgroud)

对我和我的所有同事来说,答案显然是:

8
27
64
Run Code Online (Sandbox Code Playgroud)

但是现在有几个学生已经指出,当他们在某些环境中运行时他们实际上是相反的:

64
27
8
Run Code Online (Sandbox Code Playgroud)

当我在我的Linux环境中使用gcc运行它时,我得到了我期望的结果.在我的Windows机器上使用MinGW,我得到了他们正在谈论的内容.它似乎是先评估对myFunc的最后一次调用,然后是第二次调用然后是第一次调用,然后一旦它具有所有结果,它就按正常顺序输出它们,从第一次开始.但由于呼叫是按顺序进行的,因此数字相反.

在我看来,它是一个编译器优化,选择以相反的顺序评估函数调用,但我不知道为什么.我的问题是:我的假设是否正确?这是背景中发生的事吗?或者有什么完全不同的东西?另外,我真的不明白为什么向后评估函数然后评估输出前进会有好处.由于ostream的工作方式,输出必须是前进的,但似乎功能的评估也应该是前进的.

谢谢你的帮助!

c++ gcc mingw

9
推荐指数
2
解决办法
967
查看次数

为什么KeyChar for Delete返回与Period相同?

我正在捕捉一个KeyPress-Event以检查某些允许的值.为了能够删除我在实际检查之前使用以下代码

if (e.KeyChar == (char)Keys.Delete || e.KeyChar == (char)Keys.Back)
{
   return;
}
...actual check for only digits or whatever
Run Code Online (Sandbox Code Playgroud)

问题是,当我按下键盘上的句号时,e.KeyChar ==(char)Keys.Delete也是如此.

怎么会这样?我能做些什么呢?

谢谢

.net c#

4
推荐指数
1
解决办法
6583
查看次数

我可以使用Visual Studio项模板创建新文件夹吗?

我已成功创建(并手动编辑)一个项目模板,该模板将在一个'镜头'中添加多个文件.我希望这些文件都可以在应该同时创建的文件夹下创建.

在项目模板.vstemplate文件中,我可以指定一个Folder元素,但架构不允许在Item模板中使用一个.

任何人都知道这是否可行,还是我必须开始考虑扩展IDE?

visual-studio-2008 visual-studio vs-extensibility

15
推荐指数
1
解决办法
2794
查看次数

无法从使用中推断出类型参数

我对仿制药很新,所以我想知道是否有人可以解释我遇到的以下问题.在ASP.NET MVC应用程序中的几乎所有控制器中,我都需要返回一个已过滤的列表(在用户指定某些过滤条件的情况下填充JqGrid).每个控制器列表方法将返回一个不同的IQueryable列表,所以我开始创建一个通用方法来处理它.

当我创建我的方法时,我在特定的控制器中定义它.一切都编译好了,我得到了我期望的结果.因为我想从我的所有控制器调用这个方法,我假设我可以简单地创建另一个静态类,将方法放在那里,然后从我的所有控制器调用该方法.但是,如果我尝试将方法移动到调用它的控制器以外的任何其他位置,编译器会抱怨该方法的最后一行,并出现以下错误:

System.Linq.Queryable.Where<TSource>(System.Linq.IQueryable<TSource>, System.Linq.Expressions.Expression<System.Func<TSource,bool>>) 无法从用法中推断出方法的类型参数.尝试显式指定类型参数.

public static IQueryable<T> FilteredList<T>(IQueryable<T> list, string filters)
{
     var qb = new QueryBuilder<T>();
     var whereClause = qb.BuildWhereClause(filters);
     return list.Where(whereClause);
}
Run Code Online (Sandbox Code Playgroud)

我试着list<T>.Where(whereClause)list.Where<T>(whereClause)和几乎所有其他的组合,我要去哪里错了,谁能给我解释一下.

c# generics

3
推荐指数
1
解决办法
2万
查看次数

Eclipse:Java,查看使用类的位置

Eclipse中是否有一种方法可以选择Java类,然后显示项目中使用该类的所有Java文件的列表?

java eclipse search

93
推荐指数
2
解决办法
4万
查看次数

什么是替换For-Each循环进行过滤?

虽然for-each循环有许多优点,但问题是,当你想过滤(过滤意味着从列表中删除元素)一个列表时,它不起作用,你能不能取代任何替代,因为即使遍历索引也不是一个好选择. .

java foreach list

2
推荐指数
1
解决办法
1439
查看次数

用于搜索具有无限数量的位字段的表的SQL设计方法

考虑搜索包含公寓租赁信息的表格:使用该界面的客户端选择多个标准,这些标准在数据库中表示为位字段,例如:

  • AllowsPets
  • HasParking
  • HasDeck
  • ModernKitchen

等等..

我们面临的情况是,我们软件的每个新客户都有他们希望允许最终用户搜索的其他字段.位字段的数量可以达到数百个.

我有三种方法,我正在考虑并希望输入和/或不同的方法.

  • 当前方法:添加更多位字段,动态构建SQL查询并使用EXEC执行: SET @SQL = @SQL + 'l.[NumUnits],' exec(@SQL))

继续添加更多位字段.(300列的表?)

  • 将数据表示为一个字段中的一系列位.我不清楚这种方法是否有效,考虑我上面提供的4个样本位字段.该字段可能如下所示:1011表示"hasparking"为false,但对其他所有字段均为true.我不清楚你是如何构建一个你不关心它是否为真或假的查询,例如1?11,其中搜索人需要1,3和4为真,但不关心'HasParking'是真还是假.

  • 移动到你有一个表"AttributeTypeID"和一张桌子PropertyAttributes,其中加入了物业ID到AttributeTypeId基于属性的方法,新的位字段只是在AttributeTypeID表中的一行.

其他一些方法?这是一个众所周知的SQL设计模式吗?

谢谢你的帮助

KM-EDIT PER评论


attribute table has a few other rows in it and is called listingattributes

CREATE TABLE [dbo].[ListingAttributes](
    [ListingID] [bigint] NOT NULL,
    [AttributeID] [int] IDENTITY(1,1) NOT NULL,
    [AttributeType] [smallint] NOT NULL,
    [BoardID] [int] NOT NULL,
    [ListingMLS] [varchar](30) NOT NULL,
    [PropertyTypeID] [char](3) NOT NULL,
    [StatusID] [varchar](2) NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [AttributeID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = …

sql sql-server search database-design

7
推荐指数
1
解决办法
1121
查看次数

php:echo"",print(),printf()

有没有更好的方法用PHP输出数据到HTML页面?

如果我想用php中的一些var创建一个div,我会写这样的东西

print ('<div>'.$var.'</div>');
Run Code Online (Sandbox Code Playgroud)

要么

echo "'<div>'.$var.'</div>'";
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

或者更好的方法,填写$tempvar并打印一次?像那样:

$tempvar = '<div>'.$var.'</div>'
print ($tempvar);
Run Code Online (Sandbox Code Playgroud)

事实上,在现实生活中,var将会充满更多!

php syntax

28
推荐指数
2
解决办法
4万
查看次数

使用IronPython来学习.NET框架,这很糟糕吗?

因为我是Python粉丝,所以我想学习使用IronPython的.NET框架.我会错过什么吗?这在某种程度上不推荐吗?

编辑:我非常了解Java(因此学习/使用新语言对我来说不是问题).如果需要,我是否可以使用我在IronPython中学到的所有东西(不包括语言特征)来编写C#代码?

.net c# ironpython

4
推荐指数
3
解决办法
438
查看次数

Oracle运行脚本

我正在使用Oracle Sql Developer

我有一个巨大的脚本,可以创建表,索引,主键约束等.

我的DB名称是:dbo_other

我以sysdba身份登录了这个dbo_other.

如果我运行我的脚本,则表格不会出现在"桌子"下的左侧面板上

但是,如果我通过添加'dbo_other'来附加脚本.在每个表名前面,表格会显示出来.

这非常繁琐且耗时.

有办法避免这种情况吗?为什么他们不会在没有添加dbo_other的情况下出现在dbo_other中.在每个表名前?当我在右上角运行查询时,下拉列表中选择了dbo_other !!

我甚至可以从创建的表中做一个select*(但是在左侧边栏中看不到它)此外,我可以在pl/sql developer中看到该表.

为什么oracle sql开发人员要我用dbo_other创建它.??

另外,有没有办法避免为每个表添加它?也许可以在脚本之上完成某些事情,以便它对随后的所有内容生效?

sql oracle sysdba oracle-sqldeveloper

0
推荐指数
1
解决办法
223
查看次数