小编Cpp*_*ner的帖子

c ++中的class T(你的定义)

在c ++中使用类T的一个优点是减少在函数中重新定义数据类型的时间,如果这些数据类型在其他函数中定义,例如在int main中.

template <class T>
void showabs(T number)
{
  if (number < 0 )
    number  = -number;
  cout << number << endl;
  return 0;
}

int main()
{
  int num1 = -4;
  float num2 = -4.23f;

  showabs(num1);
  showabs(num2);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,没有类T,对于每种数据类型,我们必须添加其相应的数据类型条件,即另一组if语句用于int,另一组用于float.

我对么?

c++ templates function-templates

2
推荐指数
1
解决办法
3752
查看次数

这些线在装配中做了什么?

我对装配很新.我总是对数字感到困惑有人可以帮助我吗?我正在使用TASM ...所以8066汇编器有什么好的参考我可以使用吗?

SCREEN_CLEARER:
mov ax,1720h
mov cx,2000
mov bx,0
L2:
mov es:[bx],ax
add bx,2
loop L2
ret
Run Code Online (Sandbox Code Playgroud)

我真的不知道1720h,2000是什么.我也不太清楚如何阅读移动es:[bx],ax

非常感谢你

assembly masm tasm

2
推荐指数
1
解决办法
313
查看次数

每个文件都有自己的静态变量副本吗?

假设您的头文件中有一个静态全局变量,并在main.cpp中使用此变量.

// header.h
static int variableOne = 100;

//main.cpp
   .
   .
   cout << variableOne << endl;
Run Code Online (Sandbox Code Playgroud)

main.cpp会得到自己的variableOne副本(虽然值仍然是100 ......)?或者我将这个概念与extern混合(我知道extern告诉编译器,variableOne是在项目的其他地方定义的......)

谢谢.

c++

2
推荐指数
2
解决办法
196
查看次数

在什么情况下可以在定义中使用外部变量?

我很抱歉.我不知道我的不完整的代码附件会造成如此混乱.我很高兴看到这么多真诚的帮助.

这段代码将编译:

int myadd(int, int);
static int main_stat = 5;

int main()
{
    int i, j;
    main_stat = 13;
    j = myadd(-1,7);
    i = main_stat;

    cout << j << i;     //  3  and 13
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

myadd.cpp

extern int main_stat = -3;
int myadd(int x,int y)
{
    int t = main_stat;
    t = x + y;
    y = t +main_stat;
    return y;    // will return 3
}
Run Code Online (Sandbox Code Playgroud)

请参阅我定义和extern链接main_stat.为什么合法?我以为你只能链接而不能定义.

存储是否在myadd函数调用的堆栈帧中分配?我相信全局静态是在堆上分配的,对吧?


编辑

对不起,我想这次我会缩小我的问题范围:

来自C++ Primer 4ed

一个的extern声明可以包括一个初始化器(结合时变得清晰),只有当它出现在函数之外.

我清楚一个定义规则.

Q1.myadd(int,int)在调用时使用了main_stat的哪个副本?与主要相同的副本,但具有不同的值(我可以测试)?或者每个函数都有自己的静态全局副本吗? …

c++ variables memory-management extern

2
推荐指数
1
解决办法
618
查看次数

将动态数组元素初始化为零

对于固定阵列,

  // will initialize the missing elements to 0 as well
   A[max_row][max_col] = {0,} 
Run Code Online (Sandbox Code Playgroud)

我们能否在动态数组中实现这一点(特别是多维)?

侧面问题:如果我们不能,并且我们被迫使用嵌套循环,那么上面的技巧的初始化时间与嵌套循环初始化相比如何?


我不想矢量,否则这个问题毫无意义.谢谢你的建议:)

c++ arrays initialization

2
推荐指数
1
解决办法
6082
查看次数

在Django中传递全局模板变量的正确方法是什么?

假设这是我们想要的每一页,我们创建"base_template.html"

    <title>{% block title %}{{ page_title }}{% endblock %}</title>

    <a href="http://{{domain}}{{current_path}}">{{ page_title }}</a>{% endblock %}
Run Code Online (Sandbox Code Playgroud)

而不是从每个视图函数传递page_title,domain,current_path,例如:

def display_meta(request):
    user_meta = request.META.items()
    sorted_meta = sorted(user_meta)     # a list of tuples
    return render_to_response('meta.html', {'sorted_meta': sorted_meta, 
                              'current_path': request.get_full_path(), 
                              'domain': request.get_host(),
                              'page_title': display_meta.__name__})
# and repeat the dictionary same manner for other views....

#urls.py
('^book_list/$', 'object_get_list', {'model': models.Book}),
Run Code Online (Sandbox Code Playgroud)

另一种方法是包装视图函数

# urls.py
('^book_list/$', views.get_template(views.object_get_list),{'model': models.Book}),

# views.py
def get_template(view, **extrakw):

    def wrapview(request, **extrakw):
        template_dict = {'current_path': request.get_full_path(), 'domain': request.get_host()}
        extrakw['template_dict'] = template_dict
        return …
Run Code Online (Sandbox Code Playgroud)

django

2
推荐指数
1
解决办法
236
查看次数

如何在MATLAB中为两个向量执行XOR?

试试这个

>> A = [1 2];
>> B = [1 4];
>> xor(A, B)

ans =

     0     0
Run Code Online (Sandbox Code Playgroud)

怎么样?哪里出错了?

matlab

2
推荐指数
1
解决办法
1175
查看次数

Ace编辑器的setAnnotations不会永久保留

我无法让我的注释留下来.看到这个jsfiddle:http://jsfiddle.net/c8k45yw1/5/

您将看到的第2行是我手动设置的,在它消失之前会出现"X"标记半秒钟.思考?

var editor = ace.edit("editor");
editor.setTheme("ace/theme/chrome");
editor.getSession().setMode("ace/mode/javascript");
//editor.session.setBreakpoint(2);
editor.getSession().setAnnotations([{
  row: 1,
  column: 0,
  text: "Strange error",
  type: "error" // also warning and information
}]);
Run Code Online (Sandbox Code Playgroud)

javascript ace-editor

2
推荐指数
1
解决办法
3497
查看次数

究竟是random.random做什么

    random.shuffle(lst_shuffle, random.random)
Run Code Online (Sandbox Code Playgroud)

我知道后一部分是一个可选参数.但它究竟做了什么呢.我不明白这是什么意思.这是来自文档.

random.random()返回[0.0,1.0]范围内的下一个随机浮点数.

我也看到了这个,这是0,0,1,0这个范围的意思吗?

Pseudorandom number generators
Most, if not all programming languages have libraries that include a pseudo-random
number generator. This generator usually returns a random number between 0 and 1 (not
including 1). In a perfect generator all numbers have the same probability of being selected but
in the pseudo generators some numbers have zero probability.
Run Code Online (Sandbox Code Playgroud)

python random

1
推荐指数
1
解决办法
2453
查看次数

消除内括号进入空列表并且不消除使用缺点

目标是消除所有内部括号.

(flatten'(a(bc)d))变为'(abcd)

这是我在Racket中的代码

; if slist is null, return empty
; otherwise, if it is a pair, recursively solve car and cdr and concat them
; if it is a symbol, return the symbol

(define flatten
  (lambda (slist)
    (cond
      [ (null? slist) '()]
      [ (pair? slist)  
        (cons ((flatten (car slist)) (flatten (cdr slist))))]
      [ (symbol? slist) slist])))
Run Code Online (Sandbox Code Playgroud)

它在抱怨

procedure application: expected procedure, given: c; arguments were: ()
Run Code Online (Sandbox Code Playgroud)

这意味着我正在尝试访问carcdr列出一个空列表.

I did the trace:
> (flatten '(a (b …
Run Code Online (Sandbox Code Playgroud)

scheme flatten racket

1
推荐指数
1
解决办法
230
查看次数