我想输出目录中的所有标题.每行有一个条目,每行应以四个空格开头,并且应以空格和'\'字符结尾.
____header1.h_\
____header2.h_\
____header3.h_\
Run Code Online (Sandbox Code Playgroud)
我已经想出如何使每行输出一个条目.
ls -1 *.h
Run Code Online (Sandbox Code Playgroud)
但我不知道如何进行格式化.我应该在哪里学习更复杂的格式?
编辑:
所有答案中的所有脚本都会产生所需的输出.我希望我能接受所有答案.
我在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呢?
这可能听起来像一个令人困惑的问题,但由于某种原因,我无法完全理解上面代码中发生的事情.那里发生了什么?
我正在写一篇关于某个新数据结构的论文.这种结构保持(key, value)成对并支持快速查找key.
我可以在论文中将其称为关联容器吗?
Wikipedia 仅在C++的上下文中包含关联容器的定义.关联容器的概念是C++的东西吗?
关联数组上的条目似乎更好.它根据4个操作定义关联数组:
不幸的是,我找不到很好的参考这个定义.您知道我可以引用的任何相关来源吗?
我们可以通过调用函数std::this_thread::get_id()的开头来获取主线程的id,main就像这个答案所暗示的那样.然后我们可以将它存储id在一个全局变量中,并与一个调用进行比较std::this_thread::get_id().
但是,这迫使我们改变main功能.有没有办法创建一个这样做的库函数?我正在考虑使用用std::this_thread::get_id()表达式初始化的全局变量.由于全局变量(具有静态持续时间的变量)相对较早地初始化,因此在初始化这些变量之前,不太可能(但不是不可能,参见:延迟动态初始化)生成线程.
我还可以使用辅助函数初始化全局变量,该函数枚举所有线程并选择具有最早创建时间的线程(基于此答案).
我是多线程的新手,所以非常欢迎任何建议或指导.
今天我在面试时被问到这个问题。不幸的是,我不确定我是否在这里正确地复制了它。我只记得,我不太理解它。问题可能是
“加载静态和动态编译的 dll 会导致什么问题?”
我不知道答案,但面试官告诉我,至少有两个主要问题:
运行时库:可能存在一些不兼容的内存分配和解除分配。
不幸的是,我们在这里被打断了,我们没有回到这个问题。
请您帮我理解这个问题可能是什么,以及答案是什么?
我对第一点也不太理解。malloc我以为一个程序中只能有一个,我错了吗?
发出以下命令以启动 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命令的作用,但文档对我来说太高级了。
我正在尝试使用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和重构中同时打开所有文件.
我只是想在排序或删除元素后询问迭代器是否有效.当我们插入容器时,可以重新分配它以查找更多空间并使现有迭代器无效.但是排序和删除元素会发生什么?那些人可以强制重新分配容器吗?
这段代码会崩溃一次吗?
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) 以下程序有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)