小编OJF*_*ord的帖子

为什么以及如何重载operator <<进行打印

我编写了一个用于实现堆栈的程序.我有一个显示功能.

这是我最初编写显示功能的方式:

template <class t>
void Mystack<t>::display()
{
    for (int i = 0; i <= top; i++)
    {
        std::cout << input[i] << " ";
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我被开发人员建议编写一个更通用的显示函数.所以我写了显示功能:

template <class T>
void Mystack<T>::display(std::ostream &os) const         
{
    for (int i = 0; i <= top; i++)
    {
        os << input[i] << " ";
    }
}
Run Code Online (Sandbox Code Playgroud)

根据我的理解,编写上述功能的好处是,现在我有一个通用的显示功能,我可以使用它来向控制台或文件显示数据.

问题1:我的理解是否正确?

现在另一个建议是写函数类似于:

template <typename T>
friend std::ostream& operator<<(std::ostream& s, Mystack<T> const& d) {
    d.display(s);
    return s;
}
Run Code Online (Sandbox Code Playgroud)

问题2:具有上述显示功能有什么好处?通过具有上述显示功能,我能够实现什么?

c++ operator-overloading friend

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

Ruby散列中的值的频率

如果我有像书的评级哈希

books = {"Gravity's Rainbow"=>:splendid,
         "House in Hyde Park"=>:splendid, 
         "The Week"=>:quite_good
        }
Run Code Online (Sandbox Code Playgroud)

我想计算一个特定值或评级的出现次数,这是怎么做的?

我试过了books.values[:splendid].length- 但是我想错误是因为它认为我想把所有内容从"books.values"中切割成"出色",这是错误的类型.

如何删除所有不是":辉煌"的东西books.values?我应该查看列表操作而不是哈希?我是Ruby的新手,在我输入时思考.我不确定是否books.values已返回列表或其他类型但是?

ruby hash dictionary

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

如何在 Mac 上编写 C++?

我在大学里上第一堂 C++ 课。我需要下载 C++,我的老师给了我们一个直接下载链接,但它只适用于 Windows。有没有办法格式化它以在我的 Mac 上工作,或者是否有我可以下载的 Mac 友好版本?

c++ macos ios

4
推荐指数
2
解决办法
3万
查看次数

通过HTTP API发送的Mailgun似乎没有发送

我正在尝试使用Mailgun通过HTTP API发送如下:

蟒蛇:

def send_simple_message(string):
    return requests.post(
        "https://api.mailgun.net/v2/samples.mailgun.org/messages",
        auth=("api", "my-key"),
        data={"from": "<me@mydomain.com",
              "to": ["to@recipient.com"],
              "subject": "",
              "text": string})
Run Code Online (Sandbox Code Playgroud)

我的域名使用提供的CNAME记录进行验证,我尝试发送几个测试版string.

根本没有从我的Python脚本中看到任何可见的东西 - 没有出现在已发送的项目(gmail)中.所以我尝试通过终端手动,得到了回复:<Response [404]>.

更新地址mydomain.com(感谢@kwatford)我得到<Response [200]>(成功).

但是,这是我发给自己的测试邮件(在不同的地址).我没有收到消息,它也不在发送的框中me@mydomain.com.我做错了什么?

mailgun

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

迭代计数器不递增

我用c ++编写了一个程序来打印所有素数高达100,但它只是写入"hello world",然后挂起.这是为什么?

#include <iostream>

bool is_prime(int num)
{
    if(num == 1)
    {
        return false;
    }
    for(int i = 2; i < num; i++)
    {
        if(num % i == 0)
        {
            return false;
        }
    }
    return true;
}

int increase(int i)
{
    return i++;
}

int main()
{
    std::cout << "hello world!!" << std::endl;
    int i = 1;
    while(i < 100)
    {
        i = increase(i);
        if(is_prime(i))
        {
            std::cout << i << " is prime" << std::endl;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c++

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

使用带有空格的 Jinja2 字符串作为 HTML 属性

如果我向 Jinja2 传递一个包含空格的字符串,例如:

myStr = "my string" #a google.appengine.ext.db.StringProperty
Run Code Online (Sandbox Code Playgroud)

然后渲染它,例如:

<div class={{ myStr }}>
Run Code Online (Sandbox Code Playgroud)

生成的 HTML 是:

<div class="my" string>
Run Code Online (Sandbox Code Playgroud)

我尝试通过创建过滤器来解决这个问题,用%20or替换空格&nbsp;,但似乎两者都无效,文字字符串被呈现,如<div class="my&nbsp;string">.

我发现确实呈现预期结果的唯一方法是:

<div class="{{ myStr }}">
Run Code Online (Sandbox Code Playgroud)

但这是一种不受欢迎的风格;尤其是因为它完全破坏了(“官方”)语法突出显示。

请注意,这会影响所有属性(我已经尝试过),而不仅仅是class. (title例如,想要一个空格似乎是合理的)。

我错过了什么,这应该如何处理?

html python jinja2

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

运行时错误除以-1

我不怀疑是否需要检查除零.我从来没有听说过负面检查分区!

if( *y == 0 )
    return 0; //undefined
else
    return *x / *y;
Run Code Online (Sandbox Code Playgroud)

x, y指向int32_t,我在相关的情况下包括这个细节.

在运行时,如果*x==0x80000000, *y==0xffffffff,我得到错误(在Xcode中):

EXC_ARITHMETIC(代码= EXC_I386_DIV,子代码= 0x0)

我在网上找到的所有建议都是除零,但正如你从上面的检查中看到的,我可以从调试窗口看到,这不是这里的情况.

错误意味着什么,我该如何解决?

c++ xcode integer-division secure-coding

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

溢出与进位标志,非常基本的术语

我一直试图弄清楚溢出与进位(对于 ARM7,但足够基本,我的意思是适用于任何事物的术语)。

我想我终于明白了——但我想检查一下我的“真正的基本理解”是否正确,所有的复杂性都被消除了,是否真的可以归结为:

unsigned => V = 0   
V = 1 => bit n is incorrect
C = 1 => bit n+1 'exists'
Run Code Online (Sandbox Code Playgroud)

谢谢,

assembly arm carryflag

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

在 Flask MethodView 的派生类中装饰方法

我认为我可以通过__enter__如下装饰来要求登录所有派生视图:

from flask.views import MethodView
from flask.ext.login import login_required
class LoggedInView(MethodView):
    @login_required
    def __enter__(self):
        pass
Run Code Online (Sandbox Code Playgroud)

如果我添加一些日志记录,结果__enter__是没有输入。同样,__exit__不会发生。

这里发生了什么?

我可以修改样式来装饰一些其他功能,但是有必要调用super()派生视图,这违背了这样做的初衷。

如何在继承之外的视图中没有任何工作的情况下强制执行此装饰LoggedInView

python flask flask-login

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

正在释放的指针未被分配,动态数组C++

和C有类似的问题,但我现在的问题实际上与此类似.

不幸的是,我只是在学习C++,我看不出如何将解决方案应用到我之前的问题(如果它确实适用),而后一篇文章是他的代码的一个特定问题,这比我的更复杂拥有.

这是相关代码:

double n1, n2; //temporary data for user entry
int pcount = 0; //size of my array
struct point{double x; double y;};
point *p = new point[1]; //my array
point *tmp;  //temporary array while resizing

while (points >> n1 >> n2){ //for each element the user enters, 
    pcount++; //increase the array size
    tmp = new point[pcount]; //allocate new memory for the array
    tmp = p; //copy the elements from the old to the temporary
    delete …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers memory-management dynamic-arrays

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