V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wutiantong  ›  全部回复第 20 页 / 共 32 页
回复总数  622
1 ... 16  17  18  19  20  21  22  23  24  25 ... 32  
2019-07-08 15:21:19 +08:00
回复了 wutiantong 创建的主题 C Hello,请问标准是否有保证 std::map 的 move constructor 后 other 为空?
@bumz 我问的是 special case,而不是 general case,你应该看看我在前面放的一些描述和引用。
2019-07-08 13:51:01 +08:00
回复了 pythonee 创建的主题 程序员 现在桌游还流行吗,似乎已经很少看到有人玩了
@zxfreedom 看 5e 呀,各个版本精髓差不多的,吃透一本就行了。
2019-07-08 13:50:17 +08:00
回复了 pythonee 创建的主题 程序员 现在桌游还流行吗,似乎已经很少看到有人玩了
话说从“三国杀”到“狼人杀”到“剧本杀”,我真是受够了这个无脑的命名模版了,一点想玩的欲望都没有。
2019-07-08 13:22:11 +08:00
回复了 wutiantong 创建的主题 C Hello,请问标准是否有保证 std::map 的 move constructor 后 other 为空?
@blinue 如果是 vector,other 是会为空的,cppreference 上有提到这点; https://stackoverflow.com/a/17735913/6947776 这里有更详细的解释:
This operation must have constant complexity ...So for the move constructor, yes, the moved-from vector will always be empty. This is not directly specified, but falls out of the complexity requirement, and the fact that there is no other way to implement it.

而 map 的相关信息不多,cppreference 也没提到 other 是否为空的事情,但有复杂度的条款:
Constant. If alloc is given and alloc != other.get_allocator(), then linear.

所以我很好奇这里会不会也和 vector 有类似的情况。
2019-07-08 11:12:06 +08:00
回复了 pythonee 创建的主题 程序员 现在桌游还流行吗,似乎已经很少看到有人玩了
emmm, MTG 了解一下?
2019-07-05 10:16:39 +08:00
回复了 fetich 创建的主题 C++ 请教《C++ Primer》一书中有关显式类型转换的问题
@qihehulian 不懂别瞎讲。
2019-07-03 16:33:29 +08:00
回复了 gaoan000 创建的主题 C 请教个指针问题
@gaoan000 p 等于&arr[0] (但类型不同), *p 等同于 arr
2019-07-03 16:02:42 +08:00
回复了 gaoan000 创建的主题 C 请教个指针问题
@gaoan000 不是,这里重点要搞懂的是 C 语言里数组到底是个啥玩意。
2019-07-03 15:40:07 +08:00
回复了 gaoan000 创建的主题 C 请教个指针问题
把 char * 换成 int 可以减少一点障眼法:

#include <stdio.h>
int main()
{
int arr[] = {1, 2, 3};
int *(*p) [] = arr;
printf("p: %p; *p: %p", p, *p);
}
2019-07-03 15:35:38 +08:00
回复了 gaoan000 创建的主题 C 请教个指针问题
首先这代码根本就是不对的,用 C++肯定是编不过的。改成正确的样子是:
char const *str[] = { "abcddsfd", "12234", "56ef111111324" };
char const *(*p)[3] = &str;

用 C 可以编过去,但报 warning:
incompatible pointer types initializing 'char *(*)[]' with an expression of type 'char *[3]'

这里 str 是个数组,但它隐式退化成了&str[0],所以代码等同于:
char *(*p) [] = ( char * (*) []) ( &str[0] ); // 毕竟 C 语言允许你在不同类型的指针间瞎转。
所以 p 的值其实就是&str[0]。

当你访问*p 的时候,p 指向的地址被解释成了 char *[]类型,结果它还真是!(那里躺着个 str )。
但这也不是很重要了,毕竟你最后 printf 时,数组类型再次退化成指针,又变成了&str[0] 。。。。
2019-07-02 16:14:53 +08:00
回复了 yusuzhan 创建的主题 程序员 为什么我的选择排序比插入排序快?
@yusuzhan 排序算法的性能评估只看比较操作(less)的次数,交换操作(exch)则应尽量降低影响。

你的这个 exch 恐怕比 less 还要慢一丢丢。
2019-07-02 16:00:32 +08:00
回复了 yusuzhan 创建的主题 程序员 为什么我的选择排序比插入排序快?
很可能是 exch 引入了额外的开销
2019-07-02 10:00:43 +08:00
回复了 adoyle 创建的主题 Linux 分享一个 Bash 脚本编程类库 Lobash
看起来不错
2019-06-27 10:28:43 +08:00
回复了 wutiantong 创建的主题 C How to capture perfectly-forwarded variable in lambda ?
@GeruzoniAnsasu 你说的是对的呀,C++14 里引入了带 initializer 的 capture 以此来解决 move 的问题,但这个语法仅限于通过 auto 或者 auto &来自动推断类型,所以不能直接得到 rvalue ref
然后针对 perfectly-forward 的情况就需要通过一些 wrapper 的手段来绕一下,我搜到的这篇文章讲了很详细:
https://vittorioromeo.info/index/blog/capturing_perfectly_forwarded_objects_in_lambdas.html
2019-06-18 10:34:50 +08:00
回复了 haozhang 创建的主题 C 关于 C 的函数指针指向任意函数类型
@letianqiu 是我 sb 了,其实我昨天打开你那个链接加载得太慢一直没出来页面内位置,然后从上往下翻到了一处讲 pointer to member function 能不能转 void *的,就以为是你给的地方。关于能不能转我好像也搞错了,不好意思哈。
2019-06-18 00:36:11 +08:00
回复了 haozhang 创建的主题 C 关于 C 的函数指针指向任意函数类型
@letianqiu 事实上,C++里 pointer to function 是可以转成 void *的
2019-06-18 00:32:06 +08:00
回复了 haozhang 创建的主题 C 关于 C 的函数指针指向任意函数类型
@letianqiu 你没有给出正确的参考,因为 pointer to member function 是不同于 pointer to function 的
2019-06-13 15:03:19 +08:00
回复了 weo0 创建的主题 南京 大家对南京这座城市印象如何?
yi bi diao zao
2019-06-11 11:21:52 +08:00
回复了 africwildman 创建的主题 C 用 c 分配内存,为什么普遍都是用 malloc 而不是用 calloc?
@wheeler 感谢分享
2019-06-04 17:45:04 +08:00
回复了 hackpro 创建的主题 C C++ static 关键字
问题 1,如果你没运行到 f,a 是不存在的(未分配内存),更不必讨论初始化。这点你在引文里其实已经提到了。

编译器如何实现的我也不清楚,但一定不是你说的这样
1 ... 16  17  18  19  20  21  22  23  24  25 ... 32  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1033 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 19:24 · PVG 03:24 · LAX 11:24 · JFK 14:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.