他们说,从我读过的所有资料来看,偷看和流行之间的区别在于偷看并没有消除最高价值.在我的讲义中提供的例子中,显然他们使用不同的减法方法做同样的事情.两个操作后顶部减去1.
我对吗?可能不是,有人可以解释这些有何不同?
int pop(void)
{
assert(top>0);
return data[--top];
}
int peek(void)
{
assert(top>0);
return data[top-1];
}
Run Code Online (Sandbox Code Playgroud) 是否可以窥视variable表面下方的C#堆栈层的值?在我的例子中,我需要查看下面的值1.我可以Peek将值记录到临时变量中,Pop并读取,然后Push返回临时值,但有更好的方法吗?
我已经在游戏中实现了3DTouch监视和弹出动作。
本质上,我有一个MenuScene和一个GameScene。在MenuScene我有2 CollectionViewControllers(世界选择和级别选择)。我可以从世界选择菜单中使用“窥视”和“弹出”来预览级别选择菜单。一切正常,但是我有1个问题。
当我在中使用peek和pop时MenuScene,然后过渡GameScene到玩游戏时,物理状态似乎混乱了。施加的冲动非常低,因此我的球员只跳了大约1/5的高度。
即使增加在这种情况下进行调整的冲动也不起作用,但跳跃高度始终保持不变,无论我使用什么值都无所谓。
看来applyForce,我将其与核心运动配合使用来移动播放器的速度更加缓慢。
奇怪的是,它似乎只影响跳跃。我的拍摄代码(也使用脉冲)仍然可以正常工作。
当我在菜单场景中使用“窥视”和“弹出”按钮时,几乎感觉像是播放器较重,但是我看不到任何迹象表明。
如果我不使用peek和pop,MenuScene而只是转到GameScene我没有这个问题,那么一切都会像往常一样。
到目前为止,我尝试的步骤均无济于事。
退出时尝试取消注册预览委托MenuScene。
unregisterForPreviewing(withContext: ...)
Run Code Online (Sandbox Code Playgroud)将预览委托直接添加到世界菜单CollectionViewController,而不是将其添加到r ootviewcontroller。
使用控制台打印出我的GameScene物理值,看是否有些混乱。
我想念什么吗?偷看动作和流行动作为什么会弄乱SpriteKit的物理特性?
我有一段代码打开一个文件并解析它.此文本文档具有冗余结构并具有多个条目.我需要在循环中查看是否有新条目,如果有,我将能够解析我的程序提取的所有数据.让我首先展示我到目前为止的实施情况
use strict;
my $doc = open(my $fileHandler, "<", "test.txt");
while(my $line = <$fileHandler>) {
## right here I want to look at the next line to see if
## $line =~ m/>/ where > denotes a new entry
}
Run Code Online (Sandbox Code Playgroud) 我有一个服务器net.Conn,我想在读出字节之前查看它,检查它是否是客户端尝试使用的纯文本协议,或SSL/TLS.
检查http://golang.org/pkg/net/,似乎Conn界面没有这样的东西.我知道我可以使用一个iobuf.Reader,但是tls.Conn(conn, config)如果事实证明客户端正在使用SSL/TLS并且iobuf.Reader将从原始读取,那么我想获得TLS Conn Conn,因此握手tls.Conn将失败.
那么有什么方法可以窥探ConnGo(就像MSG_PEEK在C/C++套接字中那样)?或者,tls.Conn在我从底层读出前几个字节后创建一个Conn?
我使用StreamReader的Peek()方法来检查是否需要处理更多行.我的文件中有超过1000行,但Peek()在到达#750行时突然返回-1.我查了一下,但#750和#751之间似乎没有区别.即使我删除了#750和751行,它仍会在其他行中分解.
以下是我的代码供您参考:
try
{
String ftpserver = ftp + filename;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpserver));
reqFTP.UsePassive = false;
reqFTP.UseBinary = true;
reqFTP.Proxy = null;
reqFTP.Credentials = new NetworkCredential(username, password);
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
response = (FtpWebResponse)reqFTP.GetResponse();
stream = response.GetResponseStream();
reader = new StreamReader(stream, ConfigHelper.MyEncoding);
while (reader.Peek() > -1)
{
string x = reader.ReadLine();
if (x != null)
{
//.......
}
}
}
catch (Exception ex)
{
}
finally
{
if (reader != null)
reader.Close();
if (response != null)
response.Close();
}
Run Code Online (Sandbox Code Playgroud)
我试过了while …
在我的测试演示中,我将UITableView放入故事板中的UIViewController.当我在iPhone上测试demo时,我在tableView中按了一个单元格,我在图片中得到了这个错误
在func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController?方法中,我使用
guard let indexPath = tableView.indexPathForRowAtPoint(location), cell = tableView.cellForRowAtIndexPath(indexPath) else { return nil } 在UITableView中获取按下的单元格.
如果你给我任何答案,我真的很感激!
我有一个StreamReader,偶尔会检查是否有更多要从简单的文本文件中读取.它使用peek属性.问题在于,当我使用peek时,位置会发生变化,而不是假设.
FileStream m_fsReader = new FileStream(
m_strDataFileName,
FileMode.OpenOrCreate,
FileAccess.Read,
FileShare.ReadWrite );
StreamReader m_SR = new StreamReader(m_fsReader);
Console.WriteLine("IfCanRead SR Position " + m_fsReader.Position +
" and Length " + m_fsReader.Length);
if (m_SR.Peek() == -1) {
Console.WriteLine("IfCanRead false 2 SR Position " +
m_fsReader.Position + " and Length " + m_fsReader.Length);
return false;
}
else {
Console.WriteLine("IfCanRead true 2 SR Position " +
m_fsReader.Position + " and Length " + m_fsReader.Length);
return true;
}
Run Code Online (Sandbox Code Playgroud) 我试图peek在Visual Studio 2010中使用这些库中的函数:
#include "stdafx.h"
#include <string>
#include <string.h>
#include <fstream>
#include <iostream>
#include <string.h>
#include <vector>
#include <stack>
Run Code Online (Sandbox Code Playgroud)
但是,我不能peek在堆栈中使用该函数:
void dfs(){
stack<Node> s;
s.push(nodeArr[root]);
nodeArr[root].setVisited();
nodeArr[root].print();
while(!s.empty()){
//peek yok?!
Node n=s.peek();
if(!n.below->isVisited()){
n.below->setVisited();
n.below->print();
s.push(*n.below);
}
else{
s.pop();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
错误1错误C2039:'peek':不是'std :: stack <_Ty>'的成员
我究竟做错了什么?
我有一个处理私有本地消息队列(MSMQ)的Windows服务.当它启动时,它PeekCompleted在队列上注册一个事件处理程序,然后调用异步BeginPeek()以等待消息到达.
protected override void OnStart(string[] args)
{
if (String.IsNullOrWhiteSpace(args[0]))
return;
queue = new MessageQueue(args[0]);
queue.Formatter = new BinaryMessageFormatter();
queue.PeekCompleted += new PeekCompletedEventHandler(OnPeekCompleted);
queue.BeginPeek();
}
Run Code Online (Sandbox Code Playgroud)
一旦消息到达,我的目标是显然处理该消息.我的代码目前有一个queue.Receive()获取消息的方法,包含在一个事务中,以便在处理过程中出现错误时将消息放回队列.BeginPeek()再次调用以重新启动循环.
private static void OnPeekCompleted(Object source, PeekCompletedEventArgs asyncResult)
{
try
{
MessageQueue q = (MessageQueue)source;
using (MessageQueueTransaction trans = new MessageQueueTransaction())
{
trans.Begin();
Message msg = q.Receive(trans);
ProcessMessage(msg);
trans.Commit();
}
// Restart the asynchronous peek operation.
q.BeginPeek();
}
catch (MessageQueueException qEx)
{
// TODO: Walk it off.
} …Run Code Online (Sandbox Code Playgroud)