问题标签 [temporary-objects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
383 浏览

c++ - 创建一个临时的 decltype

我有某种类型的对象,例如,std::vector<int> v;
现在,比如说,我想验证它是否v释放了它的所有内部内存。
在 C++11shrink_to_fit()方法之前,推荐/保证的方法是swap()使用相同类型的空std::vector<>

但是,我不想指定对象的类型。我可以decltype用来指定类型,所以我想写这样的东西:

但是,上面的代码不起作用。我似乎无法decltype(v)用空的 ctor 创建一个临时类型(在这种情况下)。

是否有其他语法来创建这样的临时文件?

0 投票
3 回答
1843 浏览

java - Java优化:声明类变量VS使用临时变量

首先,如果我的英语不完美,请原谅,但我不是来自说英语的国家(西班牙),所以......

好吧,这就是问题所在。在创建类时,尽可能使用临时变量是一种好习惯,或者最好将变量声明为类变量,只是为了保持清楚?

我会给你一个例子,使用一个简单的 SpriteSheet 类。是一个非常简短且流行的类,几乎用于 Java 中的所有 2D 游戏。

这是我正在观看的教程的创建者最初计划的代码:

}

关键是,据我所知,他只是在做一个普通的课程,遵循所有 Java 约定。看了之后觉得可以稍微改进一下。这是我的同一类的版本:

}

以防万一,如果您不想过多关注,我将尝试恢复我所做的更改以及原因:-在类声明中添加了“final”,因为我认为我永远不需要实例化它。- 删除了除数组之外的所有类变量,因为它是我最终会从这个类中使用的唯一东西。我觉得将其余变量声明为类变量只是浪费内存。如果它们是临时的,如果我没记错的话,它们会被使用,然后 GC 迟早会处理它们,释放内存。- 将数组标记为最终数组,因为它将在运行时的其余部分保持不变。- 将 SIZE 常量拆分为宽度和高度,以防我决定使用一些非方形精灵表。- 声明 w 和 h 实际上是个好主意,因为在参数中调用方法通常不利于执行速度(或者这就是我在某些地方读到的)。- 由于 0 被多次使用,我相信将其声明为变量将有助于提高执行速度(只是一点点,可能无论如何都不会被注意到)。

这基本上就是全部了。请注意,我是一名学生,可能会犯一些非常n00b的错误,这就是我想在这里问的原因,因为我确信周围有很多经验丰富的程序员。

请记住,我并不真正关心 SpriteSheet 类,我对优化的质量更好奇。

¿ 我是改进了事情还是让事情变得更糟(实际上让事情变得更慢、可读性更差、将来更难维护、做编译器无论如何都会做的事情......)?

抱歉,如果我的问题太长太模糊,是我的第一个问题,对我来说很容易;)

提前致谢。

编辑:

我只是在稍作休息后才阅读它,它没有任何意义(您是否看到我正在将宽度和高度参数解析为 load() 并且从不使用它们?)

这是我认为应该的:

}

刚刚意识到我真的不需要这个方法。一切都可以在构造函数中完成。

0 投票
3 回答
2717 浏览

javascript - 临时对象和永久对象 Javascript

所以我的问题很简单,但我无法解决它。我有 2 个对象,一个是临时的,第二个是永久的,临时对象从永久对象中获取数据,但是当我对临时对象执行操作时,永久对象链接也示例:

所以我的问题是,我怎样才能将数据从永久对象转移到临时对象,但是当我对临时对象执行操作时,永久对象不会改变?

0 投票
1 回答
69 浏览

c++ - Why is there a difference between using c++ string+string temporary object by different compilers?

Please look at this code.

I have no reputation, can't post images so that I will write results by hand.

= Visual Studio 2013 ver.12.0.30110.00

= Dev-C++ ver.4.9.9.2

The first following is execution result that compiled by Visual Studio.

Second is compiled by Dev-C++.

I wonder what makes this difference.

I will be looking forward to your reply. Thanks :)

0 投票
1 回答
90 浏览

mysql - 更新 MySQL 表以双重聚合构造,这取决于表本身

我需要更新一个表,但要获得新值,我似乎需要创建一个临时表。原因是我需要计算sum. max我可以做吗?

伪代码如下所示:

我使用方括号来显示必须完成的部分,但被 UPDATE 查询忽略...

我两者都有maxsum而且我看不到避免 tmp 表的方法。但如果可以的话,我们会很高兴有这样的解决方案。


我把答案放在这里,我在@flaschenpost 和这篇文章的帮助下得到了答案:SQL 更新到其连接值的总和

0 投票
1 回答
96 浏览

sql-server - Oracle 临时存储

我需要执行一次性脚本(也就是说,它不会部署在活系统中)来更正现有表中的一些值。

脚本本身不相关。这里的问题是“一些值”部分:要调整的数据(键和旧值和新值)是在电子表格中收集的。假设它有很多行,比如 4 或 5 列。

在 MSSQL Server 术语中,我将创建一个临时表来保存输入值,并在将电子表格导出为 CSV 后将它们全部输入(加上一些文本转换,可能使用 sed(1) 或 paste(1) unix shell 命令):

我需要在 Oracle 中执行此操作。

Oracle 临时表似乎只是数据方面的临时表,我的意思是,它们在使用之前应该已经存在于数据库中。我没有,也永远不会拥有创建它的必要权限;SQLServer 允许创建临时表,而不管普通的表创建权限如何。

有任何想法吗?

0 投票
3 回答
175 浏览

c++ - 临时 T 是否应该作为参数调用 C++11 中的 T(const T&) 或 T(T&&)?

所以,先写代码:

然后从 cygwin + gcc 4.8.2 输出,打开 C++11 功能:

我不太明白的是 x41 和 x51 的线。对于 x41,函数调用返回的临时值应该调用移动构造函数还是副本?x51的同样问题。
第二个问题是,通过查看输出,x41 和 x51 的构造没有调用任何定义的构造函数,但是对象显然是在内存中创建的。这怎么可能?

0 投票
1 回答
1463 浏览

ios - 如何在 iOS 应用程序中存储每个会话的临时值/对象

所以我有一个正在开发的混合电子商务 iOS 应用程序,我需要在结帐过程中临时存储多个字符串/数组值。如果用户离开结帐流程,我希望删除或重置这些值。否则,在结帐过程中的某个时间段,我希望能够检索这些值并使用它们。

实现这一目标的最佳方法是什么?Core Data 似乎比我想要的更持久,但它可能是正确的方法。我总是可以在其中存储东西并在用户离开结帐过程时将其删除,但我想知道是否有更好的方法可以做到这一点,基本上。

关于混合部分的说明:

  • 当用户单击“结帐”时,我们启动一个 WebView 并在那里继续结帐过程。
  • 我有一个检索一些数据的数据检索类(通过 JS 桥实例化),但是该类基本上在检索完数据后就会耗尽内存
  • 在数据检索类内存不足后,我需要在多个单独的部分从 javascript 访问所述数据

那么,考虑到这一点,我存储数据检索类检索到的数据的最佳位置在哪里?当然,示例代码总是受欢迎的:)。谢谢!

0 投票
0 回答
775 浏览

oracle - oracle sql developer如何在运行时创建表

如何在运行时创建一个临时表,其列数与选择查询返回的计数一样多?例如,在开始时,不知道当用户输入时我的选择查询将返回多少项目,它返回用户输入的搜索条件下的项目数。所以每个项目的信息都将存储在不同的列中,因此我需要在运行时创建一个表。请建议如何完成?

0 投票
1 回答
1041 浏览

c++ - C++ 大括号初始值设定项列表,临时生命周期

我有以下代码:

initializer_list 是 std::initializer_list 和 string_view 不是 std::string 视图,而是与来自 const string& 和 const char* 的构造函数非常相似的类。

然后我有以下调用join

经过小型调查,我发现生成的初始化列表的第一个元素不是"this"but "\0his"。这是因为创建的临时对象的析构函数是string("this")在创建临时对象后立即调用的string_view(因此它包含无效指针)。为什么它的生命周期string("this")没有延长到完整表达式的末尾EXPECT_EQ("this", join({ string("this") }));

编辑

好的,正如您所建议的,有一个独立的示例:

使用最后一个 Visual Studio C++ (Express) 编译的该程序的输出:

它可能因编译器而异,因为上述程序可能格式错误。

我调查了调试器中调用的顺序是什么,并且有以下顺序:

我希望 的内容在函数string("this")内部可用join。事实并非如此,因为 `string("this") 之前被销毁了。

为什么在string("this")调用函数之前调用临时字符串的析构join函数,或者换句话说,为什么不将生命周期string("this")延长到完整表达式的末尾join({ string("this") })