例如:
input=7 -> print : 1 2 3 1 2 3 1
input=2 -> print : 1 2
Run Code Online (Sandbox Code Playgroud)
我只能使用下面的代码打印输入整数重复的整个“1 2 3”。(输入=2 -> 打印:1 2 3 1 2 3)
input=7 -> print : 1 2 3 1 2 3 1
input=2 -> print : 1 2
Run Code Online (Sandbox Code Playgroud) 我以这种方式实现复合模式:
1)“抽象”部分是:
class Component(object):
"""Basic Component Abstraction"""
def __init__(self, *args, **kw):
raise NotImplementedError("must be subclassed")
def status(self):
"""Base Abstract method"""
raise NotImplementedError("must be implemented")
Run Code Online (Sandbox Code Playgroud)
2)一片叶子:
class Leaf(Component):
"""Basic atomic component
"""
def __init__(self, *args, **kw):
self.dict = {}
def status(self):
"""Retrieves properties
"""
return self.dict
Run Code Online (Sandbox Code Playgroud)
问题是 pylint 当然会生成以下警告:
Leaf.__init__: __init__ method from base class 'Component' is not called
Run Code Online (Sandbox Code Playgroud)
但在我的叶子中我不能要求:
def __init__(self, *args, **kw):
Component.__init__(self, *args, **kw)
self.dict = {}
Run Code Online (Sandbox Code Playgroud)
没有引发异常。
我必须忽略 pylint 警告还是存在一些错误的编码?
我正在使用下面的代码写入文本文件.设置是:
_
import serial
ser = serial.Serial ( 2 , baudrate = 57600 , timeout = 1 )
AngleText = open ("data.txt" , "w")
while True:
line = ser.readline().strip('^\n\r')
print line
AngleText.write (str(line))
AngleText.flush()
ser.close()
Run Code Online (Sandbox Code Playgroud)
问题是,数据被附加到文本文件中.我想要的是一个只包含一行的文本文件.我该怎么解决这个问题?谢谢!
我班上的枚举声明有问题.我试图在私人,公共,外部,主要,无效的情况下宣布它.我需要从外部调用类中的函数并使用函数中的枚举这里是我的代码.
class Algoritem {
public:
enum Optimization { W , A , D };
enum FenceType { OF , CC };
enum Eventopa { BR , OR };
algorithem* OptimalPatrol(double N, int K, double VS, double T, Optimization F,FenceType FT, Eventopa E, double Imax,double P);
};
Run Code Online (Sandbox Code Playgroud)
当我需要调用OptimalPatrol()时,我需要输入3个枚举.我无法在主要版本中重新声明它们,那么如何从主要的变量输入我的枚举?
我有一组存储在文件中的坐标.我只提取了某些点的"x"坐标并存储在一个名为的向量中:
vector<double> x_points;
Run Code Online (Sandbox Code Playgroud)
然后,我需要获得该向量内的最小和最大x坐标值.所以我使用*max_element和*min_element包括<algorithm>;
double max_in=*max_element(x_points.begin(),x_points.end());
double min_in=*min_element(x_points.begin(),x_points.end());
Run Code Online (Sandbox Code Playgroud)
然后,当我打印值时,使用
cout<<" min-max-In "<<min_in<<" "<<max_in<<" ";
Run Code Online (Sandbox Code Playgroud)
...它只显示整数部分.我需要小数部分的整个值.那么,我怎样才能获得真正的价值,因为我需要那些用这些值做另一个过程?谢谢.请帮忙.
我已经在google中进行了搜索并被告知这是不可能的,因为我只能char *从字符串中获取静态,所以我正在寻找替代方案.
下面是这样的情况:我有一个.txt文件,其中包含其他.txt文件和一些数字的列表,这样就可以将程序添加到无需重新编译的程序中.我使用an ifstream将文件名读入字符串.
它们所需的功能是期望char *不是a string,显然这种转换是不可能的.
我可以访问这个函数,但它调用另一个函数,char *所以我认为我坚持使用char *.
有没有人知道一个工作或另一种方式这样做?
我需要将数据从二进制文件流式传输到字符串流:
stringstream body;
body << std::ifstream( path.string().c_str(), ios::binary).rdbuf();
Run Code Online (Sandbox Code Playgroud)
但它从头到尾读取了整个文件。
如何将文件从200thbyte 开始读取到 stringstream 并转到3000th?
我使用递归算法在c ++中实现了一个国际象棋机器人,该程序每次移动评估超过一百万个节点.
随着时间的推移,它占用的内存超过1 GIG的RAM ......
但我真的不需要在完成移动后先前声明的变量......
那么如何手动刷新堆栈内存以摆脱堆栈上先前声明的变量,就像java的垃圾收集器一样?
我发现我的来源中有这一行:
Move * M = new Move(x1,y1,x2,y2);
pair <Move *, Piece *> pr (M,aPiece);
Run Code Online (Sandbox Code Playgroud)
并且它在执行移动函数中,在递归中被称为百万次...
我的问题是,一旦完成所有递归并且我不再需要这个变量,你将如何清除这样的变量,但是当递归正在做它的事情时,我需要该变量留在内存中?
有人可以告诉我创建包含类,子类和方法的.hpp和.cpp的正确方法是什么?我必须使用export "C" firstClass* create_object { return new firstClass; }吗?(我使用C ++工作。)我应该拥有file.hpp还是file.h?
#include <string>
//public ?? how can i have this?
class firstClass
{
public:
firstClass();
class secondClass
{
public:
secondClass();
std::string name;
virtual std::string method1();
} *sec;
virtual void DoSomething();
} *first;
// And for a private class?
class private *priv;
Run Code Online (Sandbox Code Playgroud)
在file.cpp中
#include file.hpp
firstClass::firstClass()
{
sec = new firstClass::secondClass();
}
std::string firstClass::secondClass::method1()
{
//code
}
Run Code Online (Sandbox Code Playgroud)
现在是否extern每个类/子类都必须有一个对象?如果要创建一个.so文件并使用dlsym和dlopen来访问类,子类和方法,修改值,发送对特定方法的引用,是否有必要?谢谢!
extern "C" firstClass* create_object()
{return new …Run Code Online (Sandbox Code Playgroud)