我正在使用int(myString),myString =" - 1",我得到错误:
ValueError: invalid literal for int() with base 10: '"-1"'
Run Code Online (Sandbox Code Playgroud) 鉴于代码:
class Sample
{
public:
int *ptr;
Sample(int i)
{
ptr = new int(i);
}
~Sample()
{
delete ptr;
}
void PrintVal()
{
cout << "The value is " << *ptr;
}
};
void SomeFunc(Sample x)
{
cout << "Say i am in someFunc " << endl;
}
int main()
{
Sample s1= 10;
SomeFunc(s1);
s1.PrintVal();
}
Run Code Online (Sandbox Code Playgroud)
输出是:
Say i am in someFunc
Null pointer assignment(Run-time error)
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么第二行输出来了.输出的第二行.我认为编译器在未明确指定时提供了复制构造函数.因此,在函数SomeFunc(Sample x)中,应该创建和销毁SomeFunc()的本地对象,它是Sample类型的X,并且main()中的Sample类型对象(s1)应该保持不变,并且应该只在之后释放主要出口.请回答上述行为发生的原因?
有内存泄漏吗?
const char * pname = "NAME";
char * temp = new char[strlen(Name) + 64];
sprintf(temp,"%s", pname);
delete [] temp; // is there any memory leaks because now length of temp is 4.
Run Code Online (Sandbox Code Playgroud) 我有这个问题,每当我尝试通过libcurls发送我的post_data1时,它会说错误的密码,但是当我在post_data2中使用固定表达式时,它会让我登录.而当我输出它们时,它们是完全相同的字符串..
任何人都可以告诉我为什么当libcurl将它们放入标题时它们不一样?或者在发送之前他们为什么会有所不同,如果是这样的话.
string username = "mads"; string password = "123";
stringstream tmp_s;
tmp_s << "username=" << username << "&password=" << password;
static const char * post_data1 = tmp_s.str().c_str();
static const char * post_data2 = "username=mads&password=123";
std::cout << post_data1 << std::endl; // gives username=mads&password=123
std::cout << post_data2 << std::endl; // gives username=mads&password=123
// Fill postfields
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post_data1);
// Perform the request, res will get the return code
res = curl_easy_perform(curl);
Run Code Online (Sandbox Code Playgroud) 我编写了代码来构建二进制搜索树,还编写了一个bfs二进制搜索树来测试它是否有效,但我收到了很多错误,我调试它们已经很长时间了,无法找到错误.
#include<vector>
template<typename Key, typename Value>
struct BSTNode{
Key key;
Value value;
BSTNode * left;
BSTNode * right;
BSTNode(Key k, Value v, BSTNode *l=NULL, BSTNode *r=NULL) :
key(k), value(v), left(l), right(r) {}
};
template<typename Key, typename Value>
BSTNode<Key, Value>* min_height(std::vector<int> &v, int left, int right ) {
if(left<=right){
int mid=left+ (right-left)/2;
BSTNode<Key, Value>* node=new BSTNode<Key, Value>(v[mid], v[mid]);
node->left=min_height(v, left, mid-1 );
node->right=min_height(v, mid+1, right );
return node;
}
}
int main(){
std::vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
BSTNode<int, int>* root=min_height(v, 0, …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个布尔一行,以查看特定的子字符串是否在字符串列表中.所以我可以在类似的东西中使用它
if( (condition1) and (condition2) and (python_one_liner) ):
# Do some things here
Run Code Online (Sandbox Code Playgroud)
这有望取代以下内容:
if( (condition1) and (condition2) ):
Condtion3 = False
for str in list_of_strings:
if( mystr in str ):
Condition3 = True
if( Condition3 ):
# Do some things here
Run Code Online (Sandbox Code Playgroud)
一种显而易见的方法是简单地编写一个函数并在初始if
语句中评估该函数.我想知道是否有更好的方法来做到这一点.
我必须编写一个递归函数,它在10个基数中得到一个数字(n)并将其转换为给定的数字基数(k)并返回一个列表,其中的组件是最终的数字,例如f(5, 3)
必须得到[1, 2]
基数3中的5是12,还是f(22, 3)
必须结果[2, 1, 1]
.
这是我试过的代码:
def cb(n, k):
b = []
if n == 0:
b.append(0)
if n < k:
b.append(n)
if n == k:
b.append(10)
else:
a = n // k
b.append(n - ((n // k) * k))
if a < k:
b.append(a)
else:
cb(a, k)
return b
print(cb(22, 3))
Run Code Online (Sandbox Code Playgroud)
实际上我对它有很多想法,但由于我不太擅长编写代码,所以我不能再进一步了.感谢您对我的代码的帮助和修改.
我有一个python列表,我从api得到:
ERRATA_PKG_LIST = []
packages_key = "packages"
for pkgs, package_name in errata_rhel_ver_dic.iteritems():
if pkgs == packages_key:
ERRATA_PKG_LIST.append(package_name)
print(ERRATA_PKG_LIST)
Run Code Online (Sandbox Code Playgroud)
输出:
[u'kernel-2.6.18-416.el5.i686',
u'kernel-2.6.18-416.el5.x86_64',
u'kernel-debug-2.6.18-416.el5.i686',
u'kernel-debug-2.6.18-416.el5.x86_64',
u'kernel-debug-devel-2.6.18-416.el5.i686',
u'kernel-debug-devel-2.6.18-416.el5.x86_64',
u'kernel-devel-2.6.18-416.el5.i686',
u'kernel-devel-2.6.18-416.el5.x86_64',
u'kernel-doc-2.6.18-416.el5.noarch',
u'kernel-headers-2.6.18-416.el5.i386',
u'kernel-headers-2.6.18-416.el5.x86_64',
u'kernel-PAE-2.6.18-416.el5.i686',
u'kernel-PAE-devel-2.6.18-416.el5.i686',
u'kernel-xen-2.6.18-416.el5.i686',
u'kernel-xen-2.6.18-416.el5.x86_64',
u'kernel-xen-devel-2.6.18-416.el5.i686',
u'kernel-xen-devel-2.6.18-416.el5.x86_64']
Run Code Online (Sandbox Code Playgroud)
我想检查列表中的每个项目是否包含子字符串:el5如果列表中的所有对象都包含el5,然后分配变量rhel ="rhel 5",我该如何实现?
对我来说,我有一个不寻常的功课问题:
不要修改主函数,但更改它作为输出打印的程序:
- 星期一
- 是第一天
- 一周中的
并且继承了给定的代码:
int main()
{
cout << "is the first day\n";
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激 :)