小编use*_*710的帖子

具有多个谓词的C++ 11算法

std::find_if来自algorithm标题的函数非常有用,但对我来说,一个严重的限制是我每次调用时只能使用1个谓词count_if.

例如,给定一个像std::vector我想要应用的容器,同时使用find_if多个谓词的相同迭代; 标准库中有一些东西可以保持这种功能方法吗?

c++ algorithm predicate c++11

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

Kadane算法的实际用途是什么?

这个算法很有趣,我知道它被用于图像处理(可能还有其他场景),但我觉得奇怪的是这个算法也对负值进行操作,而负值在成像世界中几乎不存在很多来unsigned int代表价值观。

您能否提供一个利用 Kadane 算法的实际示例?

c++ algorithm image-processing

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

在 C 中使用指向未命名结构的指针?

类似的东西有什么用

typedef struct
{
    int field_1;
    float field_2;
}*T;
Run Code Online (Sandbox Code Playgroud)

C

由于 astruct是 in 的数据类型C,关于所指向的数据类型的信息T存储在哪里以及如何正确初始化var声明为的变量T var

c struct pointers

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

如何使用 mapfile / readarray 跳过 bash 中的空行?

foo()
{

  mapfile -t arr <<< "${1}"

  for i in "${!arr[@]}"
  do
    if [ -z "${arr[$i]}" ]
    then
      unset arr[$i]
    fi
  done

}
Run Code Online (Sandbox Code Playgroud)

当我传递一个包含一些内容的变量(基本上是一个大字符串)时,我想:

  1. 将第一个空格之前的第一个单词解释为键,第一个空格之后的所有内容都成为我的关联数组中该键的条目
  2. 跳过空行或仅包含换行符的行

示例(为了紧凑性,不包括空行)

google https://www.google.com
yahoo https://www.yahoo.com
microsoft https://www.microsoft.com
Run Code Online (Sandbox Code Playgroud)

数组应该看起来像

[ google ] == https://www.google.com
[ yahoo ] == https://www.yahoo.com
[ microsoft ] == https://www.microsoft.com
Run Code Online (Sandbox Code Playgroud)

对于这两点,我在 bash 手册中没有找到任何好的解决方案,foo您看到的函数是一种创建数组的 hack,只有在此之后它才会遍历整个数组并删除字符串为 null 的条目。

因此,第 2 点得到了一个解决方案,可能是一个低效的解决方案,但它有效,但第 1 点仍然没有好的解决方案,read据我所知,替代解决方案是在迭代时创建一个数组。

你知道如何改善这一点吗?

arrays bash associative-array

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

ELF 或二进制文件中有特定 ABI 的签名吗?

我需要确定用于生成一些二进制文件、程序、动态和静态库的 ABI。

我想问一下是否有一个属性、一个标签或一个字符串,我可以用一些外部工具检查以查看哪个 ABI 用于创建该二进制对象。我的对象主要是用于 x86 和 ARM 的 ELF,我也包括用于调试目的的 ABI,例如 DWARF 对象。

编辑:类似于文件开头的魔术字节,通常用于检测文件的文件格式。

x86 arm elf abi

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

C++中有一个函数指针类型?

标准库是否为C++中的函数指针实现了一个类型?

我对编织器不满意(它们对我来说更像是一个黑客而不是真正的函数指针),你必须创建一个额外的对象,这真的不是我想要的,在C中有一对括号和一个简单的语法你可以声明一个指向函数的指针,我正在寻找相同的简单加上一些与该类型相关的有用方法,例如在保持对象处于一致状态的同时替换指向函数的能力时间.

有类似的东西?我真的很想念C中的普通旧函数指针,而在C++ AFAIK中,对于作为类或任何其他函数的成员的方法没有这样的东西.

c++ function-pointers

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

无符号整数作为UTF-8值

假设我有

uint32_t a(3084);
Run Code Online (Sandbox Code Playgroud)

我想创建一个存储unicode字符的字符串,U+3084这意味着我应该取值a并将其用作UTF8表/字符集中正确字符的坐标.

现在,显然std::to_string()对我不起作用,标准中有很多函数在数值和char之间进行转换,我找不到任何给我UTF8支持和输出的东西std::string.

我想问一下我是否必须从头开始创建这个函数,或者C++ 11标准中有一些东西可以帮助我; 请注意我的编译器(gcc/g ++ 4.8.1)不提供完整的支持codecvt.

c++ unicode utf-8 c++11

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

这个和成员函数的const正确性

假设我有一个通用的A类

class A {
  ...
  int a;                // a member
  void foo() const{...} // a member function qualified as const
  ...
};
Run Code Online (Sandbox Code Playgroud)

这意味着如果我声明一个Alike 的实例A k;然后我调用在该调用上/内部k.foo();this指针是foo类型的东西const A * const.

现在我想知道为什么这篇博文中的代码有效,特别是为什么这不适用于全局变量.

我的解释是关于指针别名的隐藏操作,就像this隐式复制指针一样,在此复制期间,结果const不再是(出于某种原因......)但它仍然是this指针,意味着它是指向同一实例的指针.

我的问题是:const如果在声明成员函数的接口之后应用了什么呢?您对链接的博客文章有具体的答案吗?


来自博客的代码

#include <iostream>

class counter {
public:
  int i;    
  counter();    
  int inspect() const;
  void increment();
};

counter sigma_inspect; // sigma_inspect is global

counter::counter() { i = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ this c++11

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

如何为extern"C"设置C版本?

我有C++代码,里面有一些C代码

extern "C"{
 ...
}
int main(){
...
}
Run Code Online (Sandbox Code Playgroud)

我用类似的东西编译它

g++ -std=c++11 main.cpp
Run Code Online (Sandbox Code Playgroud)

C用于编译C代码部分的标准版本是什么?如何为C片段明确设置版本?

c c++ gcc extern

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

右递归语法还是左递归语法?

我对我要问的问题知之甚少,所以我想要一个基于为给定语法实现解析器所需的技能水平的建议(因为我是这种正式方法的初学者)解析器和语言)。

回顾几年前,​​这种情况让我想起了一些 Pascal 语法与 C/C++ 语法,这种左与右的东西。

但我不会做任何这些,我的目的是为 Markdown 等文档的标记语言实现一个简单的解析器。

因此,考虑到我从一种标记语言开始,我想让事情变得简单,这是这两个选项之间最容易处理的一个以及为什么。另一种语法对我来说可能是一个更简单的选择?如果是,您建议哪一个?

c c++ markup parsing

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