xihahaNextYear 发表于 2024-6-5 02:42

Visual studio2022 C++ 使用time(nullptr)报错

#include <ctime>
#include <random>
#include <algorithm>
#include <numeric>
#include <vector>

using namespace std;

int main()
{
    vector vec {1, 2, 3, 5};
    random_device seeder;
    const auto seed{ seeder.entropy() ? seeder() : time(nullptr)};
    default_random_engine engine{ static_cast<default_random_engine::result_type>(seed) };
    shuffle(begin(vec), end(vec), engine);
}

error C2129: 静态函数“time_t time(time_t *const )”已声明但未定义
想问下 这个是因为导入ctime的问题吗 还是需要做其他的事情
我是学习的这个例子
https://github.com/carlesmartin85/procpp5e/blob/65aedda6a92745beca48a5041411465a33cdf4cd/code/c20_code/03_ModifyingAlgorithms/12_shuffle.cpp

捷豹网络丶贱仔 发表于 2024-6-5 03:06

捷豹网络丶贱仔 发表于 2024-6-5 03:08

你好,再见 发表于 2024-6-5 09:26

g++测试编译没有问题,重新安装msvc试试呢

apull 发表于 2024-6-5 10:23

改一下头文件,加个iostream
#include <ctime>
#include <random>
#include <algorithm>
#include <numeric>
#include <vector>
#include <iostream>
using namespace std;

qqLinux 发表于 2024-6-5 12:38

建议使用c++的 std::chrono
比如:std::chrono::system_clock::now( );
std::chrono::duration_cast< std::chrono::seconds >( std::chrono::system_clock::now( ) )

xihahaNextYear 发表于 2024-6-11 23:31

你好,再见 发表于 2024-6-5 09:26
g++测试编译没有问题,重新安装msvc试试呢

我用的visual studio2022 编译就会报错

xihahaNextYear 发表于 2024-6-12 23:19

捷豹网络丶贱仔 发表于 2024-6-5 03:08
#include
#include
#include


还是报错的, 主要的问题是我使用visual studio2017就没有问题 , visual studio2022就有问题
页: [1]
查看完整版本: Visual studio2022 C++ 使用time(nullptr)报错