小编Fra*_*cis的帖子

Swift UIGestureRecogniser关注手指

我正在使用Swift制作iOS8应用程序.我希望用户能够使用手势来显示界面的某些部分.因此,例如,用户将他们的手指向上滑动,他们滑动手指的视图移开,按照他们的手指显示下面的另一个视图.

我想要的是一个手势,给出一个类似于你可以从屏幕顶部拉下来的通知框的结果.我一直在看文档,我似乎无法找到合适的手势.

我看到一个名为UISwipeGestureRecogniser,但唯一的问题是,它不会跟随你的手指,它只是在我向上/向下滑动手指时运行一个功能.

这是文档页面:https: //developer.apple.com/documentation/uikit/uigesturerecognizer

uigesturerecognizer ios swift ios8

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

C++ Vector.erase()导致分段错误

我有一个C++向量,它有一些空白元素.我想从向量中删除任何空字符串元素.我试过这段代码:

for (i = 0; i < myvector.size();i++) {
  if (myvector[i] == "") {
    myvector.erase(myvector.begin()+i);
  }
}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我得到一个分段错误.它有什么问题吗?或者此代码适用于任何人?

c++ vector segmentation-fault

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

用C++生成AST

我正在用C++编写一个解释器,到目前为止我已经有了生成令牌的词法分析器了.问题是我不确定如何生成一个解析树的"walk".

我正在考虑使用数组数组来制作我的解析树,但我不确定如何以正确的顺序将令牌实际插入到解析树中.

我不确定是否自上而下,左右或自下而上,左右.

任何人都可以为我提供简单的LALR(1)算法吗?

c++ algorithm parsing lalr abstract-syntax-tree

3
推荐指数
2
解决办法
8060
查看次数

Windows UTF8到UTF16

我一直在尝试使用C++在BOM和UTF16 LE之间进行转换,以便在Windows上正确输出字符,而无需更改终端的字体.

我尝试更改代码页,但它们不起作用.

我有2个问题,

  1. 如何将普通字符串转换为宽字符串?
  2. 创建一个将每个unicode字符映射到Windows代码页中的字符的C++映射是不是一个坏主意?

例如,

wcout << L"\u00A0" << endl;
Run Code Online (Sandbox Code Playgroud)

á当使用代码页850时,此代码在Windows上输出该字母.如何在Windows上将变量替换"\u00A0"为将普通字符串转换为宽字符?

我想要的是这个:

wcout << Lsome_variable << endl;
Run Code Online (Sandbox Code Playgroud)

我意识到这不是有效的c ++语法,但有谁知道我怎么做到这一点?或者,如果有更好的方法?

c++ windows unicode utf-8

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

去树遍历,试图理解代码

我在Rosettacode.org上看到关于树遍历的这个页面.我正在看Go的实现,我是Go的新手,这就是为什么我想要你的帮助.

在文件的开头,创建一个结构.到目前为止,这是有道理的.但我不明白的是这个:

type node struct {
    value       int
    left, right *node
}
Run Code Online (Sandbox Code Playgroud)

left, right *node一部分.我知道左,右变量是指向节点的类型指针.但我不明白为什么,首先我不知道你可以包含你正在创建的类型,在本例中是实际结构本身的节点.然后我真的不明白为什么代码不只是说left, right node.

func (n *node) iterPreorder(visit func(int)) {
    if n == nil {
        return
    }
    visit(n.value)
    n.left.iterPreorder(visit)
    n.right.iterPreorder(visit)
}
Run Code Online (Sandbox Code Playgroud)

我接下来的事情是,visit变量如何是类型的func(int).然后我也不知道如何iterPreorder在函数中使用iterPreorder.

最后我想问一下,这段代码做了什么?

tree := &node{1,
    &node{2,
        &node{4,
            &node{7, nil, nil},
            nil},
        &node{5, nil, nil}},
    &node{3,
        &node{6,
            &node{8, nil, nil},
            &node{9, nil, nil}},
        nil}}
Run Code Online (Sandbox Code Playgroud)

谢谢,这里是Rosettacode.org上完整代码的链接.

tree struct pointers go tree-traversal

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

C++ struct成员内存分配

我有一个看起来像这样的结构:

struct rtok {
    char type;
    std::string val;
    bool term;
};
Run Code Online (Sandbox Code Playgroud)

我正在编写一个简单的解释器,这个"rtok"结构就是我如何表示一个标记.我有一个"rtoks"向量,我迭代生成解析树.

我的问题是,如果我的结构中有3个成员而我只给1个成员一个值,那么其他成员是否还会占用内存?

我的意思是,如果我将"val"设置为"test",我的令牌只占用4个字节,还是会占用6个字节?("val"为4个字节,类型为1个字节,术语为1个字节)

c++ memory struct interpreter

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

C++ #include不起作用

我试图在C++中包含这样的函数,我无法理解为什么它不起作用.我有3个文件.

test.cc

int test() {
  std::cout << "This is a test" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

test.h

int test();
Run Code Online (Sandbox Code Playgroud)

main.cc

#include "test.h"

int main() {

    test();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误和我使用的命令.

c++ main.cc -o main
Undefined symbols for architecture x86_64:
  "test()", referenced from:
      _main in main-12ba52.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

c++ header include

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