我正在为学校做一个小任务,我遇到了一些麻烦.该程序的目的是总结2个随机数的滚动36000次.数字应该在1-6的范围内(模拟骰子).
然后我们计算每个求和值的频率并将其显示到控制台.
看起来很容易,除了我在运行程序时得到一个不寻常的输出.当我在调试中运行程序时它工作正常所以我有点难过如何找到问题...
我正在使用一组计数器来计算值被滚动的次数.我得到的输出看起来像这样:5888 0 6045 0 6052 0 5969 0 6010 0 6036(每个值都在换行符上我只是这样输入以节省空间)
当我运行调试(F11)然后在单步执行后按F5时,我得到所需的输出:
973 2022 3044 3990 4984 6061 4997 4030 2977 1954 968
using System;
public class DiceRollUI
{
public static void Main(string[] args)
{
DiceRoll rollDice = new DiceRoll();
Random dice1 = new Random(); //dice 1
Random dice2 = new Random(); //dice 2
int len = 36000;
while( len > 0) {
rollDice.DiceRange((uint)dice1.Next(1, 7) +
(uint)dice2.Next(1,7)); //sum the dice and pass value to array
--len;
} …
Run Code Online (Sandbox Code Playgroud) VSCode 将在它无法识别的 CSS 下生成一条波浪线。例如:
justify-self: start;
Run Code Online (Sandbox Code Playgroud)
无法识别命名网格线。这[col]
给它带来了问题。例如:
grid-template-columns: repeat(6, [col] 150px);
Run Code Online (Sandbox Code Playgroud)
我已经尝试安装许多不同的 CSS 扩展以试图纠正这个问题,但没有一个有效。作为记录,我没有使用 VSCode 的夜间版本。
有什么建议?
我正在学习如何使用EF,并且尝试使用EF核心进行初始创建迁移。运行Update-Database
后运行时,Add-Migration InitialCreate
我收到错误消息:
数据库中已经有一个名为“ Customers”的对象。
有关此问题的其他SO问题通常使人员删除他们的数据库并进行初始迁移以解决此问题。因为这是我的最初创建,所以我不确定如何继续。
我没有带客户对象的数据库,因此我不确定为什么EF试图创建新数据库时告诉我已经有一个名为“客户”的对象。
现在,尽管我收到此错误,但看来我的表是为新数据库创建的,但我不知道此错误的原因是什么。
我删除了新的数据库和迁移文件夹,并尝试在控制台中运行与以前相同的命令。
Add-Migration InitialCreate
Update-Database
我仍然收到相同的错误。以下是我的模型,上下文和启动。对于我为什么会收到此错误的任何见解,将不胜感激。
客户模型
public class Customer
{
[Key]
[DatabaseGenerated( DatabaseGeneratedOption.Identity )]
public int CustomerId { get; set; }
[Required]
[MaxLength( 50 )]
public string FirstName { get; set; }
[MaxLength( 50 )]
public string LastName { get; set; }
[Required]
[EmailAddress]
[MaxLength( 254 )]
public string Email { get; set; }
[Required]
[Phone]
[MaxLength( 15 )]
public string PhoneNumber { get; set; }
public ICollection<LodgingDates> LodgingDates …
Run Code Online (Sandbox Code Playgroud) 我在 XCode 的主项目文件夹下创建了一个名为Sounds
. 然后我将 8 个类型的音频文件拖到wav
该Sounds
文件夹中。我确保Copy items if needed
在对话框提示时进行检查。
wav
我当前正在尝试检索该目录中所有文件的列表Sounds
。
我尝试了多种不同的方法,但以下是最新的方法。
Bundle.main.paths(forResourcesOfType: "wav", inDirectory: "Sounds")
Run Code Online (Sandbox Code Playgroud)
上面的代码以及我的其他尝试要么产生了结果nil
,要么得到了一个空数组。
wav
所以我的问题是,如何从目录中检索所有类型文件的列表Sounds
?
另外,我对iOS目录结构有点不清楚。例如,位于Bundle.main
和 的目录列表之间有什么不同DocumentDirectory
?
我编辑了我的问题,因为我错误地暗示该Sounds
文件夹位于根目录中。
对于我正在处理的项目,我需要计算翻录PDF
图像数据中每列的设置位数。
我正在尝试获取整个PDF
作业(所有页面)中每一列的总设置位数。
数据一旦被翻录,就会存储在一个MemoryMappedFile
没有后备文件(在内存中)中。
PDF 页面尺寸为 13952 像素 x 15125 像素。生成的翻录数据的总大小可以通过将PDF
像素的长度(高度)乘以字节的宽度来计算。翻录的数据是1 bit == 1 pixel
. 因此,以字节为单位的翻录页面的大小是(13952 / 8) * 15125
.
请注意,宽度始终是 的倍数64 bits
。
PDF
在被翻录后,我必须计算 a 的每一页(可能是数万页)中每一列的设置位。
我首先用一个基本的解决方案来解决这个问题,即循环遍历每个字节并计算设置位的数量并将结果放在vector
. 从那以后,我将算法缩减为如下所示。我的执行时间从 ~350ms 到 ~120ms。
static void count_dots( )
{
using namespace diag;
using namespace std::chrono;
std::vector<std::size_t> dot_counts( 13952, 0 );
uint64_t* ptr_dot_counts{ dot_counts.data( ) };
std::vector<uint64_t> ripped_pdf_data( 3297250, 0xFFFFFFFFFFFFFFFFUL );
const uint64_t* ptr_data{ ripped_pdf_data.data( ) };
std::size_t …
Run Code Online (Sandbox Code Playgroud) 这可能是一个荒谬的问题,我对答案有 99% 的把握,但我想确定一下。
C++20
modules
不要不包括警卫要求任何类型的module
接口文件。
我的说法正确吗?到目前为止,我读到的关于模块的所有内容都让我相信,不需要保护,因为模块只编译一次,然后为导入该模块的每个翻译单元重用。
我正试图移动unique_ptr
到WriteAsync
方法.这按预期工作.我现在遇到的问题是将唯一指针的所有权移入strand.post
lambda,然后再将其移动到QueueMessage
.
QueueMessage
需要一个std::unique_ptr<std::vector<char>>
.
在这种情况下,对我来说简单的方法就是使用a shared_ptr
.我想知道是否有办法在不使用a的情况下完成这项工作shared_ptr
.
// Caller
static void DoWork( char const* p, int len )
{
client.WriteAsync( std::make_unique<std::vector<char>>( p, p + len ) );
}
// Callee
void TcpClient::WriteAsync( std::unique_ptr<std::vector<char>> buffer )
{
_strand.post( [ this, buffer = std::move( buffer ) ]( )
{
// Error on this line.
QueueMessage( std::move( buffer ) );
} );
}
void TcpClient::QueueMessage( std::unique_ptr<std::vector<char>> buffer )
{
// Do stuff …
Run Code Online (Sandbox Code Playgroud) 我试图更改导航控制器后退按钮的字体大小,但无济于事。
我目前正在以前的视图控制器中执行此操作viewWillAppear
:
navigationController?.navigationBar.backItem?.backBarButtonItem?.setTitleTextAttributes(
[NSAttributedStringKey.font : UIFont.systemFont(ofSize: 5)], for: .normal)
Run Code Online (Sandbox Code Playgroud)
上面的代码什么也没做。所以,有两个问题。
首先,更改后退按钮字体大小的正确方法是什么(顺便说一句,这似乎比应有的要困难得多)。
其次,是否有一个单一的地方(如 AppDelegate)我可以进行此更改,以便它影响所有视图控制器?
我一直在使用以下UIView
扩展来改变视图:
func shake(count: Float = 4, for duration: TimeInterval = 0.5,
withTranslation translation: CGFloat = 5) {
let animation: CABasicAnimation = CABasicAnimation(keyPath: "transform.translation.x")
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
animation.repeatCount = count
animation.duration = duration / TimeInterval(animation.repeatCount)
animation.autoreverses = true
animation.fromValue = NSValue(cgPoint: CGPoint(x: -translation, y: self.center.y))
animation.toValue = NSValue(cgPoint: CGPoint(x: translation, y: self.center.y))
layer.add(animation, forKey: "shake")
}
Run Code Online (Sandbox Code Playgroud)
以及用法:
view.shake(count: 3, for: 0.2, withTranslation: 8)
Run Code Online (Sandbox Code Playgroud)
这适用于摇动视图(在我的情况下,我正在摇动一些按钮、UIView 和一些图像视图)。当我尝试在抖动动画期间单击其中一个视图时出现问题。
我收到:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSConcreteValue doubleValue]:无法识别的选择器发送到实例 0x600000442640”
在按钮的情况下,如果我禁用按钮然后启动抖动动画,它似乎可以防止错误发生。不幸的是,这似乎不适用于图像视图和 UIViews。
我还禁用了图像视图/ UIView 上的用户交互,但无济于事。
我觉得这与在对视图进行动画处理时在命中测试检查期间将错误的坐标传递给较低层有关。
对此错误的任何见解将不胜感激。