小编Zig*_*zor的帖子

如何反转包含复杂表情符号的字符串?

输入:

Hello world????
Run Code Online (Sandbox Code Playgroud)

期望输出:

????dlrow olleH
Run Code Online (Sandbox Code Playgroud)

我尝试了几种方法,但没有一个给我正确的答案。

这惨败:

这有点有效,但它???分为 4 个不同的表情符号:

我也尝试了这个问题中的所有答案,但没有一个有效。

有没有办法获得所需的输出?

javascript string emoji

197
推荐指数
7
解决办法
1万
查看次数

检查 dict 键以确保所需的键始终存在,并且该 dict 在定义的一组名称之外没有其他键名称

我在 python 中有一个遵循这种通用格式的字典:

{'field': ['$.name'], 'group': 'name', 'function': 'some_function'}
Run Code Online (Sandbox Code Playgroud)

我想对 dict 进行一些预检查,以确保“字段”始终存在,并且除了“组”和“功能”之外没有更多的键存在,这两个都是可选的。

我知道我可以通过使用长而不整洁的 if 语句来做到这一点,但我认为必须有一种更简洁的方法?

这是我目前拥有的:

{'field': ['$.name'], 'group': 'name', 'function': 'some_function'}
Run Code Online (Sandbox Code Playgroud)

本质上,我首先检查“字段”是否存在,因为这是必需的。然后我检查它是否是唯一的键(这很好),或者它是否是“组”旁边的键而没有其他键,或者是“功能”旁边的键而没有其他键,或者是“组”旁边的键和“功能”,没有其他。

是否有一种更整洁的方法来检查提供的密钥是否只有这 3 个密钥,其中两个是可选的?

python dictionary

44
推荐指数
4
解决办法
2341
查看次数

是否可以显式调用名称损坏的函数?

假设我有一些类似的东西

struct Foo {
    void goo() {printf("Test");}
}

external void _ZN3Foo3gooEv(Foo *f);

int main() {
        Foo f;
        _ZN3Foo3gooEv(&f);
}
Run Code Online (Sandbox Code Playgroud)

是否可以在这里通过函数的名称修改版本调用 Foo::goo() ?

编辑:

作为澄清,这只是一个实验,看看是否可以显式调用名称损坏的函数。这里没有进一步的目标。

我认为所有成员函数基本上都将 this 指针作为它们的第一个参数。

我知道这不会链接,但我不明白为什么。我认为名称修改发生在编译时,当链接器运行时,它会解析对名称修改函数的调用。(这就是为什么我想如果我们将 _ZN3Foo3gooEv 保留为 extern,它会去符号表中查找)。

我在这里误解了什么吗?

c++ name-mangling function-call

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

在python中组合两个字符串

我有一个list1这样的

list1 = [('my', '1.2.3', 2),('name', '9.8.7', 3)]
Run Code Online (Sandbox Code Playgroud)

我想得到一个list2这样的新元素(将第一个元素与第二个元素的第二个条目连接起来);

list2 = [('my2', 2),('name8', 3)]
Run Code Online (Sandbox Code Playgroud)

作为第一步,我正在检查加入元组中的前两个元素,如下所示,

for i,j,k in list1:
    #print(i,j,k)
    x = j.split('.')[1]
    y = str(i).join(x)
    print(y)
Run Code Online (Sandbox Code Playgroud)

但我明白了

2
8
Run Code Online (Sandbox Code Playgroud)

我期待这个;

my2
name8
Run Code Online (Sandbox Code Playgroud)

我做错了什么?有什么好的方法可以做到这一点吗?一个简单的方法..

python string list string-concatenation python-3.x

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

到底什么时候检查 std::ifstream::good() ?

假设我有一段代码来计算文件的大小:

std::ifstream ifs(path, std::ifstream::ate | std::ifstream::binary);
unsigned int size = ifs.tellg();
ifs.close();
Run Code Online (Sandbox Code Playgroud)

大多数时候,在 C++ 中,在哪里/何时调用相关ifs.good()

就我而言,创建流后还是调用后更好tellg()

那么,如果good()return false,我应该显式关闭流吗?

c++ std stream ifstream

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

如何在 lldb 上设置 std::string 类型?

我有以下代码:

#include <iostream>
#include <string>

int main() {
    std::string name = "Foo";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我调试时,lldb我想设置一个std::string像我这样设置的int

expr int $num = 4
Run Code Online (Sandbox Code Playgroud)

我尝试:

expr std::string $name = "Foo"

我得到了:

error: no type named 'string' in namespace 'std'

有谁明白发生了什么事吗?我怎样才能创建std::string一个lldb

观察:

当我打印时name,lldb 给我这个std::__1::string类型std::string

p foo
(std::__1::string) $2 = "foo"
Run Code Online (Sandbox Code Playgroud)

c++ string debugging lldb

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

switch case 语句中变量的声明

我在 C 中有 switch case 语句的代码,如下所示。

float value_calc ( Type_t type, void *in_data)
{
     switch ( type)
     {
          case 0:
          {
            int * data = (int*)in_data;
          }
          break;
          case 1:
          {
           float * data = (float*)in_data;
          }
          break;   <-- error :- data: redefinition; different basic types.  
          case 3:
          {
            double * data = (double*)in_data;
          }
          break;
          default:
                return 0;
       }
      for (int i =0; i< 1024; i++)
      {
          float capture = * (data + i) + diff; <-- error identifier …
Run Code Online (Sandbox Code Playgroud)

c casting switch-statement

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

find() stl 在 C++ 中的向量中

今天我试图在没有二进制搜索代码的情况下在向量中找到一个元素的位置,我发现有 find() stl 这样的东西我实现了它并且它正在编译但它没有给出正确的输出

这是我的代码:

#include <bits/stdc++.h>
using namespace std;

int main() {

    int n;
    vector<int> a(0);

    a.push_back(6);
    a.push_back(3);
    a.push_back(9);
    a.push_back(5);
    a.push_back(1);

    vector<int> :: iterator b;
    b = find(a.begin() , a.end() , 3);

    cout << (a.end() - b); // output is 4

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

我应该怎么做才能获得向量中任何元素的位置?谢谢

c++ stl vector find

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

谁能告诉我这是哪个错误。链接器错误或编译器错误

谁能解释一下为什么是链接器错误?

假设该变量i未在任何其他文件中定义。

#include <stdio.h>
int main()
{
    extern int i;
    i=10;
    printf("%d",i);

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

c linker-errors extern

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