我有一堆文本文件,格式都一样(这是下面的一个片段,真实文件更长):
Molecular weight = 43057.32 Residues = 391
Average Residue Weight = 110.121 Charge = -10.0
Isoelectric Point = 4.8926
Residue Number Mole% DayhoffStat
A = Ala 24 6.138 0.714
B = Asx 0 0.000 0.000
C = Cys 9 2.302 0.794
Property Residues Number Mole%
Tiny (A+C+G+S+T) 135 34.527
Small (A+B+C+D+G+N+P+S+T+V) 222 56.777
Aliphatic (A+I+L+V) 97 24.808
Run Code Online (Sandbox Code Playgroud)
我必须提取所有这些变量并处理它们。我打算编写一些代码,一次遍历每一行,并通过一系列 split、strip 等函数提取相关信息。
这是人们用 python 做的一项非常常见的任务,所以我开始认为必须有一个更简单的方法。
是否有任何模块或方法可以允许以下内容:
template = """
Molecular weight = {0} Residues = {1}
Average Residue Weight = {2} …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个对象向量,并希望为向量中的每个对象唯一地调用非默认构造函数.我在下面有一个简化的例子.
在我的例子中,我有一个带有两个构造函数的对象,默认(无args)和非默认(1 arg).当我使用默认构造函数(v1)初始化大小为10的向量时,构造函数被调用10次(随机数可以看到).但是,当我尝试使用对象非默认构造函数(v2)初始化向量时,对象构造函数被调用一次,并且此对象被复制到向量中的其余元素(x不再是许多不同的随机数).
是否可以初始化N个对象的向量,以便为每个对象调用每个对象的非默认构造函数?
示例代码:
#include <vector>
#include <iostream>
#include <cstdlib>
struct Obj {
int x;
Obj() {
x = rand() % 5;
}
Obj(int max_x) {
x = rand() % max_x;
}
};
int main() {
std::vector<Obj> v1(10); // Default constructor
std::vector<Obj> v2(10, 5); // Non-Default Constructor
for(int i=0; i<10; ++i) {
std::cout << v1[i].x << ", " << v2[i].x << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
3, 2
1, 2
2, 2
0, 2
3, 2
0, 2
1, 2 …Run Code Online (Sandbox Code Playgroud)