小编tem*_*boy的帖子

为什么我不能用list-initialization初始化std :: vector

为什么这不起作用?

#include <vector>

struct A {
   template <typename T> void f(const std::vector<T> &) {}
};

int main() {

   A a;

   a.f({ 1, 2, 3 });

}
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

专门化成员 S::display 需要 'template&lt;&gt;' 语法

我正在创建一个特征类来帮助我的程序。我有一个名为的模板类operations,其中包含方法displayarea。当我定义这些函数时,我收到错误。他们来了:

错误:专门化成员‘traits::operations<Rectangle>::display’需要‘template<>’语法
错误:专门化成员‘traits::operations<Rectangle>::area’需要‘template<>’语法

template <>正如您所看到的,编译器希望我在这些定义之前插入。但当我这样做时,我会得到一大页错误。出了什么问题以及如何修复它?

这是我的程序。

namespace traits
{
    template <typename P>
    struct operations
    {
        static void display(Rectangle const &, std::ostream &);
        static void area(Rectangle const &);
    };

    template <typename P, int N>
    struct access {};
}

namespace traits
{
    template <int N>
    struct access<Rectangle, N>
    {
        static double get(Rectangle const &);
    };
}

// The errors occur here
namespace traits
{
    static void operations<Rectangle>::display(Rectangle …
Run Code Online (Sandbox Code Playgroud)

c++

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

为什么这段代码给我一个无限循环?

当我输入正确的值(整数)时,它是好的.但是当我输入一个角色时,我会得到一个无限循环.我查看了这段代码的每一面,但是找不到它的问题.为什么会这样?我在Windows上使用g ++ 4.7.

#include <iostream>
#include <limits>

int main()
{
    int n;
    while (!(std::cin >> n))
    {
        std::cout << "Please try again.\n";
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        std::cin.clear();
    }
}
Run Code Online (Sandbox Code Playgroud)

输入:x
输出:

在此输入图像描述

c++ loops infinite-loop

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

为什么std :: list的最大大小?

如果std::list是一个链表,那么为什么你可以拥有多少元素?每个元素都是指向新节点的链接,并且您可以拥有多少指针没有限制.

c++

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

为什么这种链接方法不起作用?

这是一个简单的计数器.默认情况下add,调用该方法将私有变量递增count1.我Counter从函数中返回类,以便它可以被链接,但是当我查看输出时,它给出了1,当我期望它为3时,因为我调用add了三次.

#include <iostream>
#include <vector>

using std::cout;

class Counter {
    public:
        Counter() : count(0) {}

        Counter add() {
            ++count; return *this;
        }

        int getCount() {
            return count;
        }
    private:
        int count;
};

int main() {

    Counter counter;

    counter.add().add().add();

    cout << counter.getCount();

}
Run Code Online (Sandbox Code Playgroud)

c++

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

使用 str() 和 rdbuf() 打印出一个字符串流

当我有:

std::ostringstream oss("Hello");
Run Code Online (Sandbox Code Playgroud)

为什么这样做:

std::cout << oss.str();
Run Code Online (Sandbox Code Playgroud)

但这不会打印任何内容:

std::cout << oss.rdbuf();
Run Code Online (Sandbox Code Playgroud)

阅读定义operator<<(std::ostream&, std::streambuf*)说它将从缓冲区打印字符。难道oss.rdbuf()没有包含什么吗?

c++

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

为什么lambda不能通过引用捕获变量可转换为函数指针?

如果我有一个lambda,它通过reference([&] {})捕获所有自动变量,为什么不能将它转换为函数指针?常规函数可以修改变量,就像lambda一样,可以通过引用捕获所有内容,为什么它不一样?

我想换句话说,lambda与&捕获列表和常规函数之间的功能差异是什么,使得lambda不能转换为函数指针?

c++ lambda function-pointers c++11

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

为什么即使base具有用户声明的构造函数,也会发生零初始化?

这打印0,意思data是零初始化.为什么即使base有用户声明的构造函数也会发生这种情况?

struct base
{
    base() { }
    int data;
};

struct derived : base
{
    derived() = default;
};

int main()
{
    std::cout << derived().data;
}
Run Code Online (Sandbox Code Playgroud)

如果derived有一个用户声明的构造函数,那么它会输出一个随机值.为什么零初始化取决于派生类而不是基类?

c++

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

具有固定数量的模板参数的类内的多包扩展

这段代码是否格式良好?函数模板本身的声明在clang和gcc中都会出错,即使它很Ts可能是空的.

// error: too many template arguments for class template 'pair'
template<class I, class U, class... Ts>
void f(std::pair<I,U,Ts...>);

int main()
{
    f(std::pair<int,int>());
}
Run Code Online (Sandbox Code Playgroud)

函数调用在gcc中给出了这个错误,这是没有意义的.没有转换为int:

note: cannot convert 'std::pair<int, int>()' (type 'std::pair<int, int>') to type 'int'
Run Code Online (Sandbox Code Playgroud)

c++ templates c++11

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

如何绘制股票数据的滚动均值?

我能够使用以下代码绘制数据:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

url = "http://real-chart.finance.yahoo.com/table.csv?s=YHOO&a=03&b=12&c=2006&d=01&e=9&f=2016&g=d&ignore=.csv"

df = pd.read_csv(url)
df.index = df["Date"]
df.sort_index(inplace=True)

df['Adj Close'].plot()
plt.show()
Run Code Online (Sandbox Code Playgroud)

但现在我想计算数据的滚动平均值并绘制出来.这就是我尝试过的:

pd.rolling_mean(df.resample("1D", fill_method="ffill"), window=3, min_periods=1)
plt.plot()
Run Code Online (Sandbox Code Playgroud)

但这给了我错误:

Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex
Run Code Online (Sandbox Code Playgroud)

我想要做的就是绘制数据的滚动均值.为什么会这样?

python matplotlib pandas

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