小编Mar*_*dik的帖子

如何格式化ls的输出?

我想输出目录中的所有标题.每行有一个条目,每行应以四个空格开头,并且应以空格和'\'字符结尾.

____header1.h_\
____header2.h_\
____header3.h_\
Run Code Online (Sandbox Code Playgroud)

我已经想出如何使每行输出一个条目.

ls -1 *.h
Run Code Online (Sandbox Code Playgroud)

但我不知道如何进行格式化.我应该在哪里学习更复杂的格式?

编辑:

所有答案中的所有脚本都会产生所需的输出.我希望我能接受所有答案.

linux bash

3
推荐指数
4
解决办法
2914
查看次数

如何构造非默认可构造对象的std :: vector?

我在C++参考页面中遇到过这样的代码:

#include <algorithm>
#include <list>
#include <vector>
#include <functional>

int main()
{
    std::list<int> l = {-4, -3, -2, -1, 0, 1, 2, 3, 4};
    std::vector<std::reference_wrapper<int>> v(l.begin(), l.end());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是"示例"部分的摘录.代码按预期编译和运行.但是怎么可能呢?这std::reference_wrapper<int>不是默认的可构造的.你怎么能做出std::vector这些事情?我一直把它想象std::vector成一个动态阵列.但是,如何通过OS以这样的方式初始化一个新近提供给你的内存块std::list呢?

这可能听起来像一个令人困惑的问题,但由于某种原因,我无法完全理解上面代码中发生的事情.那里发生了什么?

c++ c++11

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

什么是关联容器?

我正在写一篇关于某个新数据结构的论文.这种结构保持(key, value)成对并支持快速查找key.

我可以在论文中将其称为关联容器吗?

Wikipedia 仅在C++的上下文中包含关联容器的定义.关联容器的概念是C++的东西吗?

关联数组上的条目似乎更好.它根据4个操作定义关联数组:

  1. 添加对集合
  2. 从集合中删除对
  3. 修改现有对的值
  4. 查找与特定键关联的值

不幸的是,我找不到很好的参考这个定义.您知道我可以引用的任何相关来源吗?

c++ associative-array data-structures

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

如何在特征中找出矩阵是否可逆(正则,非奇异,满秩......)?

Eigen中 计算矩阵的逆矩阵时,用户可以检查是否可以这样做:

该矩阵必须是可逆的,否则结果是不确定的.

但是如何在Eigen检查这个条件?

c++ eigen

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

如何确定我们是否在主线程中运行?

我们可以通过调用函数std::this_thread::get_id()的开头来获取主线程的id,main就像这个答案所暗示的那样.然后我们可以将它存储id在一个全局变量中,并与一个调用进行比较std::this_thread::get_id().

但是,这迫使我们改变main功能.有没有办法创建一个这样做的函数?我正在考虑使用用std::this_thread::get_id()表达式初始化的全局变量.由于全局变量(具有静态持续时间的变量)相对较早地初始化,因此在初始化这些变量之前,不太可能(但不是不可能,参见:延迟动态初始化)生成线程.

我还可以使用辅助函数初始化全局变量,该函数枚举所有线程并选择具有最早创建时间的线程(基于此答案).

我是多线程的新手,所以非常欢迎任何建议或指导.

c++ multithreading c++11

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

将静态库和动态库链接到同一个可执行文件会导致什么问题?

今天我在面试时被问到这个问题。不幸的是,我不确定我是否在这里正确地复制了它。我只记得,我不太理解它。问题可能是

“加载静态和动态编译的 dll 会导致什么问题?”

我不知道答案,但面试官告诉我,至少有两个主要问题

  1. 运行时库:可能存在一些不兼容的内存分配和解除分配。

  2. 不幸的是,我们在这里被打断了,我们没有回到这个问题。

请您帮我理解这个问题可能是什么,以及答案是什么?

我对第一点也不太理解。malloc我以为一个程序中只能有一个,我错了吗?

c c++ dll dynamic-linking static-linking

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

将 mongod 作为服务启动和作为普通可执行文件启动有什么区别?

MongoDB官方文档说:

发出以下命令以启动 mongod:

须藤服务 mongod 开始

然而,著名的MongoDB: The Definitive Guide, 2nd Edition在第 11 页说:

要启动服务器,请运行 mongod 可执行文件:

$ mongod

在我的Ubuntu 16.04系统上,第一个运行正常,第二个在我创建/data/db目录并更改其权限或使用sudo mongod.

我想知道,你什么时候应该使用哪种方式?除了第二种方式抓住终端的细微差别。

sudo service mongod start
Run Code Online (Sandbox Code Playgroud)

对比

mongod
Run Code Online (Sandbox Code Playgroud)

我试图查找service命令的作用,但文档对我来说太高级了。

ubuntu mongodb

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

使用shell将字符串"//"替换为"///"

我正在尝试使用doxygen生成Octave API的文档.但是,doxygen仅识别///文档之后的注释,而Octave中的注释样式仅供使用//.我决定运行一个shell命令来改变它并找到了这个

sed -i 's/old-word/new-word/g' *.txt
Run Code Online (Sandbox Code Playgroud)

这里开始.当我使用测试命令

sed -i 's/////// /g' *.txt
Run Code Online (Sandbox Code Playgroud)

要么

sed -i 's/"//"/"/// "/g' *.txt
Run Code Online (Sandbox Code Playgroud)

我收到错误:

sed: -e expression #1, char 5: unknown option to `s'
Run Code Online (Sandbox Code Playgroud)

要么

sed: -e expression #1, char 6: unknown option to `s'
Run Code Online (Sandbox Code Playgroud)

分别.如何正确使用sed,以取代/////

或者,这是一种更简单的方法,例如,在某些IDE和重构中同时打开所有文件.

shell replace doxygen octave

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

排序或删除元素后迭代器是否有效?这段代码是定时炸弹吗?

我只是想在排序删除元素后询问迭代器是否有效.当我们插入容器时,可以重新分配它以查找更多空间并使现有迭代器无效.但是排序和删除元素会发生什么?那些人可以强制重新分配容器吗?

这段代码会崩溃一次吗?

QVector<Foo> container;

b = container.begin();
e = container.end();

while (container.count() > newCount)
{
    computeSomePropertyOfFoo(b, e);  // Computes property between b and e
    sortByThatProperty(b, e);        // sorts members between b and e
    container.erase(--e);
}
Run Code Online (Sandbox Code Playgroud)

c++ qt iterator

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

如何在不调用C++构造函数的情况下创建对象?

以下程序有5个文件.输出为0 32,而不是14 32,因此构造对象时不调用构造函数.这怎么可能?

character.h:

#ifndef CHARACTER_H
#define CHARACTER_H 

class Character
{
public:
    Character() {}

    class Settings
    {
    public:
        int size_;
        Settings():
            size_(14)
        {}
    };
    const static Settings DEFAULT_SETTINGS;
};

#endif // CHARACTER_H
Run Code Online (Sandbox Code Playgroud)

character.cpp:

#include "character.h"

const Character::Settings Character::DEFAULT_SETTINGS;
Run Code Online (Sandbox Code Playgroud)

word.h

#ifndef WORD_H
#define WORD_H

#include <iostream>

#include "character.h"

class Word 
{
public:
    Word() {}

    class Settings
    {
    public:
        Character::Settings characterSettings_;
        int length_;

        Settings():
            length_(32)
        {
            characterSettings_ = Character::DEFAULT_SETTINGS;
        }
    };

    static const Settings DEFAULT_SETTINGS;

    void write(Settings settings = DEFAULT_SETTINGS) // this …
Run Code Online (Sandbox Code Playgroud)

c++

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