小编Sus*_*ers的帖子

将高分辨率时钟时间转换为整数(Chrono)

我希望能够通过计时库获得纳秒精度,但我无法弄清楚如何转换std::chrono::high_resolution_clock::now()long int.我试过这个:

#include <chrono>
#include <iostream>
using namespace std;

int main() {
    typedef std::chrono::high_resolution_clock Clock;

    long int val = Clock::now();

    cout << val << endl;

    cin.ignore();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但这给了我错误:error C2440: 'initializing' : cannot convert from 'std::chrono::system_clock::time_point' to 'long' 我怎样才能将它转换为64位int?如果我不能,那么我不知道计时器是如何有用的.

c++

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

C#按值传递对象?

出于某种原因,(我是C#的新手并且知道java和c ++)当我想通过值传递时,C#会继续复制对象.我有一个Vector2类的arraylist ,每当我想增加一个值时,我必须这样做:

Vector2 d = (Vector2) myObjects[i];
d.Y++;
myObjects [i] = d;
Run Code Online (Sandbox Code Playgroud)

我希望能够这样做:

Vector2 d = (Vector2) myObjects[i];
d.Y++;
Run Code Online (Sandbox Code Playgroud)

并完成.我在网上搜索,令人惊讶的是没有答案.顺便说一句,矢量是一个结构.

c#

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

C++ unique_ptr没有调用析构函数

我有一个vectorunique_ptrs表示指向一个名为状态类.当我pop_back()使用向量调用时,唯一指针将从内存中删除(我认为),但它指向的状态对象永远不会被删除.在删除它指向的对象时,或者唯一指针以某种方式不会调用析构函数?我所知道的是,当从向量中移除我的唯一指针时,我的析构函数不会被调用.

这是矢量:

std::vector< std::unique_ptr<State> > mStates;
Run Code Online (Sandbox Code Playgroud)

我试过了:

mStates.pop_back();
Run Code Online (Sandbox Code Playgroud)

这删除了唯一的指针,我认为唯一的指针将为我删除状态并调用状态的析构函数,但这没有发生.顺便说一下我用以下方法添加元素:

 mStates.push_back();
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

我可以在C++中有一个指向函数的静态指针数组吗?

我需要一个全局函数指针数组,并提出了这个:

static int (*myArray[5])();
Run Code Online (Sandbox Code Playgroud)

如果我是对的,这是"返回int的函数的全局指针数组".是对的吗?或者它是"返回静态int的函数的指针数组".我只需要快速回答.

c c++ pointers

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

Java - 为什么我不能在while循环中更改变量?

出于某种原因,每当我这样做:

public class Main {
    public static void main(String[] args) {
        boolean c = true;
        int i = 0;
        while (i < 10) {
            System.out.println(c);
            c = false;
            i++;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

true每次打印都会打印出来.

编辑:我运行了几次,比它第五次运行!我很迷惑.我想我错了......我想.

java

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

C++ - 为什么要返回对"堆栈对象"的引用

我不明白这段代码是如何工作的:

class AAA {
public:
    short a, b;
};

AAA &getRef() {
    AAA aaa = {2, 6};
    return aaa;
} // 'aaa' is destroyed here right?

int main() {
    AAA &ref = getRef();
    cout << ref.a << ", " << ref.b << endl;

    cin.ignore();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

不应该有一个错误试图访问ref.aref.b?当我使用指针时,我也没有得到错误.我的意思是,每次打印"2,6" .

编辑:是因为内存仍设置为这些数字?

c++

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

标签 统计

c++ ×4

pointers ×2

c ×1

c# ×1

java ×1