假设我们有一系列文件,列出为:
T001_000.txt
T001_001.txt
T001_002.txt
T005_000.txt
T005_001.txt
T012_000.txt
...
T100_000.txt
Run Code Online (Sandbox Code Playgroud)
我们想要合并具有相同 T 的文件???字首。例如,我们想要对每个带有 T001 前缀的文件执行以下操作:
merge T001_*.txt > newT001.txt #i just made up this function
Run Code Online (Sandbox Code Playgroud)
如何从 bash 列表中获取不同的前缀?
我有一个代码在一个表单中:
unordered_set<pair<int,int>,CustomHash> Edges;
typedef unordered_set<pair<int,int>,CustomHash>::iterator EdgesIt;
...
for(auto it=Edges.begin();it!=Edges.end();it++){
list<EdgesIt> List;
}
Run Code Online (Sandbox Code Playgroud)
我如何避免定义要在List声明中使用的新类型EdgesIt并以更智能的方式获取它,例如:
list<Edges::iterator_type> List;
Run Code Online (Sandbox Code Playgroud)
InteliSense仅建议将Edges::iterator其定义为typedef std::iterator pair<int,int> iterator.更多的说,它不起作用.我也试过用unordered_set::iterator,但它也行不通.
我有奇怪的事情,据我的经验,我可以在C++中调用bug.当我打电话给这个节目时:
#include <iostream>
using namespace std;
class foo {
public:
int a;
foo(int a = 0) : a(a) {}
} a1;
class bar {
foo a;
public:
bar(foo a = a1) : a(a) {
a.a = 1;
cout << a.a << endl;
}
void print_a() {
cout << a.a << endl;
}
};
int main() {
bar zz;
zz.print_a();
a1.a = 2;
bar zz1;
zz1.print_a();
}
Run Code Online (Sandbox Code Playgroud)
输出是:
1
0
1
2
Run Code Online (Sandbox Code Playgroud)
我也希望能够改变我的类的内部成员的价值观,就像一个对象的值FOO类内部酒吧类.当我在bar构造函数中更改 …