小编Ali*_*Ali的帖子

如何使图像保持在css网格容器的行内?

下面的代码显示了我在Chrome 60和Firefox 55中调整窗口大小时的预期行为(但在iOS Safari 10.3中没有;这很可能是另一个问题,为什么它在Safari中行为不当).

html, body {
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  border: 0;
  background-color: lightgrey;
}

.container {
  box-sizing: border-box;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: repeat(3, calc((60vh - 12px)/3));
  /*grid-template-rows: 1fr 1fr 1fr;*/
  /*grid-template-rows: auto auto auto;*/
  height: 60vh;
  border: 3px solid yellow;
  padding: 3px;
  /*grid-gap: 20px;*/ /* <-- would also mess things up */
}

.tile {
}

img {
  box-sizing: border-box;
  display: block;
  object-fit: contain;
  width: 100%;
  height: 100%;
  margin: …
Run Code Online (Sandbox Code Playgroud)

html css image css3 css-grid

10
推荐指数
2
解决办法
5329
查看次数

转换前缀表示法中给出的表达式,标识公共子表达式和依赖项

我在ANSI文本文件中的前缀表示法中给出了一堆表达式.我想生成另一个ANSI文本文件,其中包含对这些表达式的逐步评估.例如:

- + ^ x 2 ^ y 2 1
Run Code Online (Sandbox Code Playgroud)

应该变成

t1 = x^2
t2 = y^2
t3 = t1 + t2
t4 = t3 - 1
t4 is the result
Run Code Online (Sandbox Code Playgroud)

我还必须识别常见的子表达式.举个例子

expression_1: z = ^ x 2
expression_2: - + z ^ y 2 1
expression_3: - z y
Run Code Online (Sandbox Code Playgroud)

我必须生成一个输出,说x出现在表达式1,2和3(通过z)中.

我必须识别依赖:expression_1仅依赖于x,expression_2依赖于x和y等.

原始问题比上面的例子更困难,我无法控制输入格式,它以前缀表示法比上面的方式复杂得多.

我已经在C++中有一个工作实现,但是在C++中做这些事情是很痛苦的.

哪种编程语言最适合这些类型的问题?

你能推荐我可以开始的教程/网站/书吗?

我应该寻找哪些关键字?

更新:基于答案,上面的例子有点不幸,我在输入中有一元,二元和n元运算符.(如果你想知道,exp是一个一元运算符,sum在一个范围内是一个n-ary运算符.)

lisp python erlang haskell scala

9
推荐指数
2
解决办法
2292
查看次数

Java中非线性多变量函数的约束优化

我正在寻找一种方法的开源实现,该方法对Java中的非线性多变量函数进行约束优化.

java mathematical-optimization nonlinear-functions

9
推荐指数
2
解决办法
6822
查看次数

如何克服C++缺乏对嵌入式系统的工具支持?

问题不在于Linux内核.它也不是C与C++的争论.

我做了一项研究,在我看来,C++在嵌入式系统的异常处理和内存分配方面缺乏工具支持:

为什么linux内核没有在C++中实现? 除了公认的答案,请参阅Ben Collins的回答.

Linus Torvalds on C++:

"[...]任何为C++设计内核模块的人都是[...]
(b)无法看到他正在编写的C++偏见,实际上只是C"

" - 整个C++异常处理事情从根本上被打破了.对于内核来说尤其突破.
- 任何喜欢隐藏内存分配等内容的编译器或语言都不是内核的好选择."

联合攻击战斗机空中车辆C++编码标准:

"不得使用AV规则208 C++例外"


  1. 异常处理和内存分配是C++显然缺乏工具支持的唯一要点(在此上下文中)?

  2. 要解决异常处理问题,必须提供时间限制,直到抛出异常后才捕获异常?

  3. 你能解释一下为什么内存分配是个问题吗?如何克服这个问题,必须做些什么?

正如我所看到的,在这两种情况下,必须在编译时为发生的非​​常重要的事情提供上限,并在运行时依赖于事物.


回答:

  1. 不,动态演员也是一个问题,但它已经解决了.

  2. 基本上是的.处理异常所需的时间必须通过分析所有抛出路径来限制.

  3. 观看幻灯片"如何生活在没有新的"解决方案中的嵌入式系统编程.简而言之:预分配(全局对象,堆栈,池).

c++ real-time

9
推荐指数
2
解决办法
605
查看次数

如何用加速度计和陀螺仪通过手机测量汽车的速度?

我想知道当前的汽车速度,并通过一条路.我有一部带加速计和陀螺仪的Android手机,它给我发了数据.这是坐标电话系统中的数据可能与汽车的坐标系统不一样.

如何将这种加速度和旋转转换为坐标系的汽车系统?

android accelerometer gyroscope

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

.ico图标未显示在Windows上

我遵循了Qt资源系统指南,并且.ico图标出现在Linux上.

当我尝试从Qt Creator运行应用程序时,图标不会显示在Windows上.

怀疑基于Qt/C++的插件问题:在Windows操作系统下运行程序时图标没有显示但我没有弄清楚如何创建Qt插件指南.

它是插件问题还是为什么不在Windows上显示图标?

如果是插件问题:如何告诉我的应用程序在哪里可以找到qico.dll?


环境细节:

适用于:Kubuntu 12.04 LTS,Qt Creator 2.4.1和Qt 4.7.4(64位)

失败:Windows XP SP2 32位,Qt Creator 2.4.1和Qt 4.7.4(32位)

Everyting是默认的(开箱即用),我没有弄乱设置.

resources.qrc

<!DOCTYPE RCC><RCC version="1.0">
    <qresource>
        <file>images/spreadsheet.ico</file>
    </qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)

也尝试过<qresource prefix="/">.

来自applicaton.pro

RESOURCES += \
    resources.qrc

OTHER_FILES += \
    images/spreadsheet.ico
Run Code Online (Sandbox Code Playgroud)

在相应的源文件中

QIcon(":/images/spreadsheet.ico")
Run Code Online (Sandbox Code Playgroud)

我也尝试过在Windows上部署应用程序

QDir plugins(QCoreApplication::applicationDirPath()+"/plugins");

qDebug() << "Plugin directory" << plugins.absolutePath() << "found?" << plugins.exists();

app.addLibraryPath(plugins.absolutePath());
Run Code Online (Sandbox Code Playgroud)

使用插件目录中的qico.dll.它应用程序打印出plugins目录,但图标仍未显示.

我再说一遍:它适用于Linux.

plugins icons qt toolbar ico

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

为什么拼接整个列表或std :: forward_list的线性范围?

将一个范围从一个列表拼接到另一个列表可以在恒定的时间内完成,但代价是使size()线性变得复杂.

C++ 11已经改变了,在std::list需要size()恒定时间的情况下.这打破了,例如,gcc的实现,参见[C++ 0x] std :: list :: size complexity.

除了范围之外splice(),还有其他原因导致为什么 size() 不能在早期的符合C++ 03的 实现中保持恒定的时间std::list

为什么拼接整个列表或线性范围 std::forward_list

参见splice_after()案例(1)和(3).另见标准草案N3485中的23.3.4.6 forward_list操作[forwardlist.ops] .在std::forward_list甚至没有实现size().

我知道forward_list是一个单链表,但我不明白为什么人们不能splice_after()在恒定时间内完成该范围.我可能在这里遗漏了一些微不足道的东西......


编辑:好的,至少部分是我的误解,我预计4 不会留在源列表中.码:

#include <algorithm>
#include <iostream>
#include <forward_list>

using namespace std;

void dump_list(const forward_list<char>& l) {
    for(char c : l)
        cout << c << ' ';
    cout << '\n';
}

int main() …
Run Code Online (Sandbox Code Playgroud)

c++ list c++11 forward-list

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

C性能和编译选项

我有两个类似的实现(java和c ++)用于像选择排序这样的简单算法.

public interface SortingAlgorithm {

    public void sort(int[] a);
}

public class SelectionSort implements SortingAlgorithm {

    @Override
    public void sort(int[] a) {
        for (int i = 0; i < a.length; i++) {
            int lowerElementIndex = i;
            for (int j = i + 1; j < a.length; j++) {
                if (a[j] < a[lowerElementIndex]) {
                    lowerElementIndex = j;
                }
            }
            swap(a, lowerElementIndex, i);
        }
    }

    private void swap(int[] a, int i, int j) {
        if (i == j) {
            return;
        } …
Run Code Online (Sandbox Code Playgroud)

c java performance assembly gcc

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

四元数和数值稳定性

我正在学习单位四元数以及如何使用它们来表示和组合旋转.维基百科称它们在数值上比矩阵表示更稳定,但没有给出参考.任何人都可以向我解释(最好用一些数学推理)为什么使用单位四元数来处理旋转(例如对于OpenGL应用程序而不是旋转矩阵)在数值上更稳定?是因为避免了万向节锁?

math rotation quaternions rotational-matrices numerical-stability

8
推荐指数
2
解决办法
3735
查看次数

如何在clang ++中禁用自动"通过指针传递"优化?

我有一个功能

void X(Object o)
{
 ....
}
Run Code Online (Sandbox Code Playgroud)

当我编译它时,我看到,该clang将其签名更改为

void X(Object* o)
Run Code Online (Sandbox Code Playgroud)

这很不方便,因为我直接从一些llvm IR代码中使用这个函数.如何禁止它进行此优化?

编辑:最小的工作示例:

#include <stdio.h>

class Object
{
public:
    Object();
    ~Object();
    int* pointer;
};

void Function(Object o)
{
    o.pointer = 0;
}

int main()
{
    Object a;
    Function(a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

通过以下命令行:

clang++ tst.cpp -emit-llvm -O0 tst.cpp -S -std=c++11
Run Code Online (Sandbox Code Playgroud)

Function被翻译成:

define void @_Z8Function6Object(%class.Object* %o) nounwind uwtable {
  %1 = getelementptr inbounds %class.Object* %o, i32 0, i32 0
  store i32* null, i32** %1, align 8
  ret void …
Run Code Online (Sandbox Code Playgroud)

c++ clang compiler-optimization llvm-clang clang++

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