小编Dig*_*ers的帖子

为什么std :: noskipws没有工作,或者它应该做什么?

首先,我的理解是

cin >> std::noskipws >> str;
Run Code Online (Sandbox Code Playgroud)

应该cin像"我有空间"一样坚持整行str.然而,这只会把"我"放进去str.这可能是一个错误的假设,在这种情况下std::noskipws做了什么?

我知道有一个功能std::getline,这确实有效,但仅仅出于教育目的,我决定尝试std::noskipws为我工作.我过去曾尝试过,但它从未运作过,所以我通常会继续使用std::getline.

我认为到目前为止我发现的是std::noskipws技术上只是取消std::skipwsbasic_iostream刚刚调用内部的内容

ios_base::unsetf(std::ios::skipws); 
Run Code Online (Sandbox Code Playgroud)

要么

ios_base::unsetf(ios_base::skipws);
Run Code Online (Sandbox Code Playgroud)

所以我尝试继承自己的流表单basic_iostream并手动设置这些标志(取消设置).仍然没有骰子.

那么,我是完全偏离基地还是有办法让这项工作成功?

c++ std cin

9
推荐指数
1
解决办法
4670
查看次数

使用xsputn和overflow继承ostream和streambuf问题

我一直在研究创建我自己的ostream以及一个streambuf来处理我的ostream的缓冲区.我实际上大部分工作,我可以插入(<<)到我的流中,并获得字符串没有问题.我通过虚拟函数xsputn来实现这一点.但是,如果我输入(<<)一个浮点数或一个int到流而不是字符串xsputn永远不会被调用.

我已经遍历了代码,我看到流正在调用do_put,然后是f_put,它最终会尝试将float 1字符一次放入缓冲区.我可以让它调用我的虚函数溢出(int c)的实现,如果我让我的缓冲区没有空间,从而得到浮点数和int的数据.

现在问题就在这里,我需要知道何时将float放入缓冲区.换句话说,我需要知道这是什么时候最后一次溢出将被调用为特定值流入.xsputn对我有用的原因是因为我得到了整个值及其长度.所以我可以将它复制到缓冲区然后调用等待缓冲区已满的函数.

我无可否认地滥用了ostream设计,因为我需要缓存输出然后立即为每个输入值(<<)发送它.

无论如何要清楚我会以另一种方式重申我正在拍摄的内容.我很有可能以错误的方式解决这个问题.

我想使用一个继承的ostream和streambuf所以我可以输入值并允许它为我处理我的类型转换,然后我想将这些信息传递给另一个我将句柄传递给streambuf的对象(对于?).该对象有昂贵的i/o所以我不想一次发送数据1个字符.

如果不清楚,请提前抱歉.谢谢你的时间.

c++ iostream ostream streambuf

6
推荐指数
1
解决办法
3613
查看次数

接近完美或完美的内存地址哈希值

我有一个从0xc0003000到0xc04a0144的内存地址列表,列表中有许多间隙和<4096个条目.它在编译时就知道了,我想为它做一个完美的哈希.

然而,在线查找完美哈希给我的信息主要与散列字符串有关,它们似乎没有很好的翻译.

为了清楚起见,我希望能够在运行时获取内存地址,并检查它是否在哈希中.目前我正在使用二进制搜索,平均大约8个循环来找到答案.

任何想法我应该吠叫什么树?

c perfect-hash

6
推荐指数
1
解决办法
454
查看次数

如何在 blazor 的基础组件中覆盖渲染片段

我正在使用 Blazorise DataGrid,我想制作一个自定义 DataGridColumn,其中 DisplayTemplate 预先设置为模板,但是如果我从 DataGridColumn 派生,我无法弄清楚我应该如何设置 DisplayTemplate。我从这个开始

   @typeparam TItem
   @inherits DataGridColumn<TItem>
Run Code Online (Sandbox Code Playgroud)

但是后来我不知道如何将 DisplayTemplate 渲染片段设置为剃刀片段。

我也尝试过只制作一个包含 DataGridColumn 的组件,并在我的 DataGrid 中引用它,但是无论我将它放在 DataGrid 中的什么位置,该列总是在末尾。

我可能是错误的树,但我有很多实现接口的类,我总是希望为实现该接口的任何类型的任何数据网格中的特定列设置相同的 DisplayTemplate。因此,为此目的创建 DataGridColumn 派生类型似乎是合理的。

c# razor webassembly blazor blazorise

5
推荐指数
1
解决办法
505
查看次数

在施工期间访问匿名类型的成员

有没有办法在构建过程中访问匿名类型的成员?

例如

 enumerable.select(i => new
 {
     a = CalculateValue(i.something), // <--Expensive Call
     b = a + 5 // <-- This doesn't work but i wish it did
 }
Run Code Online (Sandbox Code Playgroud)

愿意考虑替代方案以实现相同的目标,这基本上是我预测我的枚举和投影的一部分是一个昂贵的计算,其价值被多次使用,我不想重复它,也重复那个打电话只是感觉不干.

c# linq anonymous-types

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

c#内存模型,锁定和同步

c#内存模型是否保证持有锁的线程能够保证在任何其他线程先前保持相同锁定时看到所执行的所有更新?

我一直在阅读c#规范,但似乎无法找到相关的细节.

c# multithreading locking memory-model shared-memory

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