小编Sam*_*uel的帖子

如何在Angular 5中做一个计时器

我正在使用Angular 5.

我想知道如何在按下"播放"按钮时开始计时,以便知道自我点击后已经过了多少时间.

我还想知道是否可以停止计时器,然后能够在之前的同一时间继续.

我终于用Pardeep Jain的答案解决了我的问题.虽然这不是我想要的.我不想倒计时,我想计算持续时间.这是我最后使用的代码:

time: number = 0;
interval;

startTimer() {
  this.play = true;
  this.interval = setInterval(() => {
    this.time++;
  },1000)
}

pauseTimer() {
  this.play = false;
  clearInterval(this.interval);
}
Run Code Online (Sandbox Code Playgroud)

timer typescript angular angular5

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

如何在旧 C++ 中初始化 const std 向量?

我的 C++ 编译器标识是 GNU 4.4.1

我认为从 c++ 11 开始,您可以通过以下方式初始化向量:

const std::vector<int> myVector = {1, 2, 3};
const std::vector<int> myVector2{1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

不幸的是,我没有使用 c++ 11,所以 myVector 只能由构造函数初始化。我需要创建一个永远不会被修改的向量。它必须由类中的不同函数共享,因此它也可以是静态的,甚至是类成员。有没有办法让我的向量在 c++98 中定义时被初始化,如上面的例子,或者等价的东西?

c++ constants stdvector c++98

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

如何在 std 函数 lambda c++ 11 中正确捕获参数包

我一直在尝试捕获 std 函数 lambda 中的一些参数包参数,以便将函数保存在内存中以供将来使用。

然而,在某些情况下,如果这些捕获的参数中的任何值在捕获后被修改,则这些参数的未来使用不会达到预期的效果。

我想在我的 std 函数中存储参数包的不可变副本。

该代码将作为库实现,因此用户可以使用它来保存一些文本以供将来打印。这样我们就无法管理参数包中收到的参数。此示例必须对字符串、const char *、int、float 有效...

这是示例代码:代码链接

template <typename... Args>
void doPrint(std::ostream& out, const Args &... args)
{
    using expander = int[];
    (void)expander{0, (void(out << args), 0)...};
}

template<typename... Args>
void printArgs(const Args & ... args)
{
    doPrint(std::cout, args...);
}

class PrintTest
{
private:

    std::vector<std::function<void()>> myFunctions;   

public:

    template<typename... Args>
    void saveText(const char * text, const Args & ... args)
    {
        std::function<void()> f = [this, text, args...]()
        {
            std::cout << text;
            printArgs(args ...); …
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++11 std-function parameter-pack

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