#include <iostream>
#include <string>
#ifdef _WIN32 // 在 Windows 平台下的实现
#include <afxwin.h>
class time_watch
{
public:
time_watch();
~time_watch();
public:
void start();
void stop();
void restart();
double elapsed_us();
double elapsed_ms();
double elapsed_s();
CString elapsed_time_string();
private:
LARGE_INTEGER freq_;
LARGE_INTEGER begin_time_;
long long elapsed_;
};
time_watch::time_watch()
{
elapsed_ = 0;
QueryPerformanceFrequency(&freq_);
}
time_watch::~time_watch()
{
}
void time_watch::start()
{
QueryPerformanceCounter(&begin_time_);
}
void time_watch::stop()
{
LARGE_INTEGER end_time;
QueryPerformanceCounter(&end_time);
elapsed_ = (end_time.QuadPart - begin_time_.QuadPart) * 1000000 / freq_.QuadPart;
}
void time_watch::restart()
{
elapsed_ = 0;
start();
}
CString time_watch::elapsed_time_string()
{
int hours = static_cast<int>(elapsed_ / 3600000000);
int minutes = static_cast<int>((elapsed_ % 3600000000) / 60000000);
int seconds = static_cast<int>((elapsed_ % 60000000) / 1000000);
CString elapsedTime;
elapsedTime.Format(_T("%dh %dm %ds"), hours, minutes, seconds);
return elapsedTime;
}
#else // 在其他平台下的实现
// TODO: 在其他平台上实现计时功能
class time_watch
{
public:
time_watch() {}
~time_watch() {}
void start() {}
void stop() {}
void restart() {}
double elapsed_us() { return 0.0; }
double elapsed_ms() { return 0.0; }
double elapsed_s() { return 0.0; }
string elapsed_time_string() { return _T(""); }
};
#endif
int main()
{
time_watch timer;
timer.start();
// 模拟一些耗时操作
for (UINT64 i = 0; i < 10000000000; ++i)
{
}
timer.stop();
CString elapsedTime = timer.elapsed_time_string();
std::wcout << "Elapsed time: " << static_cast<const wchar_t*>(elapsedTime) << std::endl;
getchar();
return 0;
}
#include <cstdlib>
#include <iostream>
class Singleton
{
public:
static Singleton* getInstance()
{
if (instance == nullptr)
{
instance = new Singleton();
return instance;
}
else
return instance;
}
static void print_instance()
{
std::cout << name << " " << age << std::endl;
}
~Singleton() {};
private:
Singleton() {};
static Singleton* instance;
static int age;
static std::string name;
};
int Singleton::age = 20;
std::string Singleton::name = "lisan";
Singleton* Singleton::instance = nullptr;
class A
{
public:
void print_a()
{
Singleton::getInstance()->print_instance();
}
};
int main()
{
A a;
a.print_a();
system("pause");
return 0;
}
#include <windows.h>
#include <iostream>
int main()
{
SYSTEM_INFO sysInfo;
GetSystemInfo(&sysInfo);
std::cout << "机器属性:" << std::endl;
std::cout << "页大小=" << sysInfo.dwPageSize << std::endl;
std::cout << "分配粒度=" << sysInfo.dwAllocationGranularity << std::endl;
std::cout << "用户区最小值=" << sysInfo.lpMinimumApplicationAddress << std::endl;
std::cout << "用户区最大值="
<< sysInfo.lpMaximumApplicationAddress << std::endl << std::endl;
}
#include <iostream>
#include <thread>
#include <vector>
#include <atomic>
bool is_solution(const std::vector<int>& data)
{
int n = data.size();
int sum = 0;
for (int i = 0; i < n; ++i)
{
sum += data[i];
}
return sum == n * (n + 1) / 2;
}
void search(std::vector<int> data, std::vector<bool>& used, int level,
std::vector<std::vector<int>>& results, std::atomic<bool>& found)
{
if (found) return;
if (level == data.size() && is_solution(data))
{
found = true;
results.push_back(data);
return;
}
for (int i = 0; i < data.size(); ++i)
{
if (!used[i])
{
data[level] = i + 1;
used[i] = true;
if (found) return;
std::thread t(search, data, std::ref(used), level + 1, std::ref(results), std::ref(found));
t.join();
used[i] = false;
}
}
}
std::vector<std::vector<int>> parallel_search(int n, int num_threads)
{
std::atomic<bool> found = false;
std::vector<std::vector<int>> results;
std::vector<int> data(n);
std::vector<bool> used(n, false);
std::vector<std::thread> threads(num_threads);
for (int i = 0; i < num_threads; ++i)
{
threads[i] = std::thread(search, data, std::ref(used), 0, std::ref(results), std::ref(found));
}
for (int i = 0; i < num_threads; ++i)
{
threads[i].join();
}
return results;
}
int main()
{
std::vector<std::vector<int>> results = parallel_search(6, 4);
std::cout << "Results found: " << results.size() << std::endl;
for (auto& r : results)
{
std::cout << "Solution: ";
for (auto& e : r)
{
std::cout << e << " ";
}
std::cout << std::endl;
}
return 0;
}
#include <iostream>
template<typename T, typename U>
T my_cast(U value) {
return static_cast<T>(value);
}
int main() {
int num = 10;
double convertedNum = my_cast<double>(num);
std::cout << "Converted number: " << convertedNum << std::endl;
return 0;
}
//#include <iostream>
//#include <fstream>
//
//int main() {
// // Parameters
// const int num_sets = 10; // Number of sets to generate
// const int grid_size = 100; // Fixed grid size
// const int time_steps = 50; // Fixed time steps
// const double isolevel = 0.5; // Fixed isolevel
//
// // Open file for writing
// std::ofstream outfile("data.txt");
// if (!outfile) {
// std::cerr << "Error: Could not open the file for writing!" << std::endl;
// return 1;
// }
//
// // Write data for each set
// for (int i = 0; i < num_sets; ++i) {
// outfile /*<< "Set " << i + 1 << ": "*/
// << "grid_size=" << grid_size << ", "
// << "time_steps=" << time_steps << ", "
// << "isolevel=" << isolevel << std::endl;
// }
//
// // Close the file
// outfile.close();
//
// std::cout << "Data has been written to data.txt" << std::endl;
//
// return 0;
//}
#include <iostream>
#include <cstdlib> // For atoi() and atof() functions
struct Parameters {
int grid_size;
int time_steps;
double isolevel;
};
int main(int argc, char* argv[]) {
// Check if the number of arguments is correct
if (argc != 4) {
std::cerr << "Usage: " << argv[0] << " <grid_size> <time_steps> <isolevel>" << std::endl;
return 1;
}
// Parse command line arguments
Parameters params;
params.grid_size = atoi(argv[1]);
params.time_steps = atoi(argv[2]);
params.isolevel = atof(argv[3]);
// Output the parameters read
std::cout << "grid_size=" << params.grid_size
<< ", time_steps=" << params.time_steps
<< ", isolevel=" << params.isolevel << std::endl;
return 0;
}
#include <windows.h>
#include <chrono>
#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
#include <ctime>
// 生成 UUID
std::string generateUUID() {
auto now = std::chrono::system_clock::now();
auto now_time_t = std::chrono::system_clock::to_time_t(now);
auto now_ms = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()) % 1000;
std::tm bt{};
localtime_s(&bt, &now_time_t); // 使用更安全的 localtime_s 函数
std::ostringstream oss;
oss << std::put_time(&bt, "%Y%m%d%H%M%S")
<< std::setw(3) << std::setfill('0') << now_ms.count();
return oss.str();
}
// 创建目录
void createDirectory(const std::string& folderPath) {
// 将 std::string 转换为 std::wstring
std::wstring wideFolderPath(folderPath.begin(), folderPath.end());
// 尝试创建目录
if (CreateDirectory(wideFolderPath.c_str(), NULL) || GetLastError() == ERROR_ALREADY_EXISTS) {
std::cout << "Directory created or already exists: " << folderPath << std::endl;
}
else {
std::cerr << "Failed to create directory. Error: " << GetLastError() << std::endl;
}
}
int main() {
// 生成 UUID 作为目录名
std::string uuid = generateUUID();
std::string folderPath = "E:\\" + uuid;
createDirectory(folderPath);
return 0;
}
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ifstream inputFile("E:\\param.txt");
std::ofstream outputFile("E:\\param_test.txt");
if (!inputFile.is_open()) {
std::cerr << "Failed to open input file!" << std::endl;
return 1;
}
if (!outputFile.is_open()) {
std::cerr << "Failed to open output file!" << std::endl;
return 1;
}
std::string line;
int lineNumber = 1;
while (std::getline(inputFile, line)) {
if (!line.empty()) {
outputFile << lineNumber << " " << line << std::endl;
++lineNumber;
}
}
inputFile.close();
outputFile.close();
return 0;
}
#include <iostream>
#include <thread>
#include <chrono>
#include <windows.h>
struct EnumData {
const wchar_t* targetTitle;
bool foundWindow;
};
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) {
EnumData* data = reinterpret_cast<EnumData*>(lParam);
wchar_t windowTitle[256];
// Get the window title
GetWindowText(hwnd, windowTitle, sizeof(windowTitle) / sizeof(wchar_t));
// Check if the window title matches the target title
if (wcscmp(windowTitle, data->targetTitle) == 0) {
// Bring the window to the foreground
SetForegroundWindow(hwnd);
// Send space key
PostMessage(hwnd, WM_KEYDOWN, VK_SPACE, 0);
Sleep(5);
PostMessage(hwnd, WM_KEYUP, VK_SPACE, 0);
data->foundWindow = true;
}
return TRUE; // Continue enumeration
}
// Function to send space key to all matching windows until all are closed
void sendSpaceKeyToAllWindows(const wchar_t* windowTitle) {
while (true) {
EnumData data;
data.targetTitle = windowTitle;
data.foundWindow = false;
// Enumerate all top-level windows
EnumWindows(EnumWindowsProc, reinterpret_cast<LPARAM>(&data));
if (!data.foundWindow) {
// No more windows found, exit loop
break;
}
// Sleep for a short time before the next enumeration
std::this_thread::sleep_for(std::chrono::milliseconds(100));
}
}
int main() {
const wchar_t* targetTitle = L"libigl viewer";
std::wcout << L"Sending space key to all windows with title: " << targetTitle << std::endl;
sendSpaceKeyToAllWindows(targetTitle);
return 0;
}
#include <iostream>
#include <cmath>
#include <random>
#include <array>
// 常量 PI
const double PI = 3.14159265358979323846;
// 简单的 BRDF 函数,假设为常数
double brdf(const std::array<double, 3>& v, const std::array<double, 3>& l) {
return 1.0;
}
// 简单的入射光函数,假设为常数
double Li(const std::array<double, 3>& l) {
return 1.0;
}
// 计算入射角余弦
double cos_theta(const std::array<double, 3>& l) {
// 假设表面法线为 (0, 0, 1)
return l[2];
}
// 生成随机方向向量
std::array<double, 3> random_direction() {
static std::mt19937 gen(std::random_device{}());
static std::uniform_real_distribution<> dist(-1.0, 1.0);
std::array<double, 3> l;
do {
l = { dist(gen), dist(gen), dist(gen) };
} while (l[0] * l[0] + l[1] * l[1] + l[2] * l[2] >= 1.0 || l[2] <= 0.0);
double norm = std::sqrt(l[0] * l[0] + l[1] * l[1] + l[2] * l[2]);
l[0] /= norm;
l[1] /= norm;
l[2] /= norm;
return l;
}
// 计算出射光 Lo
double integrate_radiance(const std::array<double, 3>& v, int num_samples = 1000) {
double total_radiance = 0.0;
for (int i = 0; i < num_samples; ++i) {
auto l = random_direction();
total_radiance += brdf(v, l) * Li(l) * cos_theta(l);
}
// 归一化
total_radiance /= num_samples;
return total_radiance;
}
int main() {
// 出射方向 v,假设为 (0, 0, 1)
std::array<double, 3> v = { 0.0, 0.0, 1.0 };
// 计算出射光
double Lo = integrate_radiance(v);
std::cout << "出射光 Lo: " << Lo << std::endl;
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<math.h>
#include<Windows.h>
#include <iostream>
#include <cmath>
#include<stdio.h> //X86
#include<GL/glut.h>
#define PI 3.1415926
void Init() {
//glClearColor(0.3f, 0.3f, 0.3f, 0.0f); //灰色
glClearColor(1.0f, 0.97f, 0.86f, 0.0f);
}
void Reshape(int w, int h) {
//
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-w / 2, w / 2, -h / 2, h / 2, -800, 800);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void XY() {
glLineWidth(1);
//glColor3f(0.0, 0.0, 0.0);//坐标轴
glColor3f(0.0, .0, 0.0);
glBegin(GL_LINES);
glVertex2i(-800, 0);
glVertex2i(800, 0);
glVertex2i(0, -600);
glVertex2i(0, 600);
glEnd();
glFlush();
}
void XYZ() {
gluLookAt(1, 1, 1, 0, 0, 0, 0, 1, 0);
glLineWidth(1);
//glColor3f(0.0, 0.0, 0.0);//坐标轴
glColor3f(1.0, 0.97, 0.86);
glBegin(GL_LINES);
glVertex3i(-1000, 0, 0);
glVertex3i(1000, 0, 0);
glVertex3i(0, -1000, 0);
glVertex3i(0, 1000, 0);
glVertex3i(0, 0, -1000);
glVertex3i(0, 0, 1000);
glEnd();
glFlush();
}
//int x[12] = { 0, 0, 2, 2, 4, 4, 4, 4, 2, 2, 0, 0 };
//int y[12] = { 0,-1, 0,-1, 0,-1, 0,-1 ,0,-1, 0,-1 };
//int z[16] = { 0, 0, 0, 0, 2, 2, 3, 3, 5, 5, 5, 5 };
//int ID[51] = { 0,1,2,3,4,5,0,6,7,8,9,10,11,6,0,6,1,7,2,8,3,9,4,10,5,11};
//int flog[51] = { 0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1, 0, 1};
int x[12] = { 0, 2, 4, 4, 2, 0, 0, 2, 4, 4, 2, 0 };
int y[12] = { 0, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1,-1 };
int z[12] = { 0, 0, 2, 3, 5, 5, 0, 0, 2, 3, 5, 5 };
int ID[26] = { 0,1,2,3,4,5,0,6,7,8,9,10,11,6,0,6,1,7,2,8,3,9,4,10,5,11 };
int flog[26] = { 0,1,1,1,1,1,1,0,1,1,1, 1,1, 1,0,1,0,1,0,1,0,1,0,1, 0, 1 };
/*int x[10] = { 0, 100, 100, 40, 0, 0, 100, 100, 40, 0 };
int y[10] = { 80, 80, 80, 80, 80, 0, 0,0, 0, 0 };
int z[10] = { 0, 0, 40, 40, 60, 0, 0, 40, 40, 60 };
int ID[22] = { 0, 1, 2, 3, 4, 0, 5, 6, 7, 8, 9, 5, 0, 5, 1, 6, 2, 7, 3, 8, 4, 9 };
int flog[22] = {0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1};*/
void Frontview(int tx, int ty) {
int j, k;
glBegin(GL_LINES);
for (int i = 0; i < 51; i++) {
j = ID[i];
k = ID[i + 1];
if (flog[i + 1] == 1) {
glVertex3i(-x[j] * 50 - tx, z[j] * 50 + ty, 0);
glVertex3i(-x[k] * 50 - ty, z[k] * 50 + ty, 0);
}
}
glEnd();
glFlush();
}
void Leftview(int tx, int ty) {
int j, k;
glBegin(GL_LINES);
for (int i = 0; i < 51; i++) {
j = ID[i];
k = ID[i + 1];
if (flog[i + 1] == 1) {
glVertex3i(y[j] * 50 + tx, z[j] * 50 + ty, 0);
glVertex3i(y[k] * 50 + ty, z[k] * 50 + ty, 0);
}
}
glEnd();
glFlush();
}
void Toptview(int tx, int ty) {
int j, k;
glBegin(GL_LINES);
for (int i = 0; i < 51; i++) {
j = ID[i];
k = ID[i + 1];
if (flog[i + 1] == 1) {
glVertex3i(-x[j] * 50 - tx, -y[j] * 50 - ty, 0);
glVertex3i(-x[k] * 50 - ty, -y[k] * 50 - ty, 0);
}
}
glEnd();
glFlush();
}
void allview(int tx, int ty) {
int j, k;
glColor3f(1.0, 0.0, 0.0);
gluLookAt(1, 1, 1, 0, 0, 0, 0, 1, 0);
glTranslatef(tx, ty, 0);
glBegin(GL_LINES);
for (int i = 0; i < 51; i++) {
j = ID[i];
k = ID[i + 1];
if (flog[i + 1] == 1) {
glVertex3i(x[j] * 50, y[j] * 50, z[j] * 50);
glVertex3i(x[k] * 50, y[k] * 50, z[k] * 50);
}
}
glEnd();
glFlush();
}
void myDisplay() {
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
//int j, k;
//glBegin(GL_LINES);
//for (int i = 0; i < 51; i++) {
// j = ID[i];
// k = ID[i + 1];
// if (flog[i + 1] == 1) {
// /*glVertex3i(x[j], y[j], z[j]);
// glVertex3i(x[k], y[k], z[k]);*/
// glVertex3i(x[j]*50, y[j]*50, z[j]*50);
// glVertex3i(x[k]*50, y[k]*50, z[k]*50);
// }
//}
//glEnd();
//glFlush();
Sleep(100);
allview(300, -100);
glLoadIdentity();
XY();
glLineWidth(2);
glColor3f(1.0, 0.0, 0.0);
Frontview(100, 100);
Leftview(100, 100);
Toptview(100, 100);
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(800, 800);
glutCreateWindow("the forth plus menu");
Init();
glutReshapeFunc(Reshape);
glutDisplayFunc(myDisplay);
//glutMouseFunc(mouse_hit);
glutMainLoop();
return 0;
}
// ConsoleApplication12.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include <iostream>
#include <atlstr.h>
using namespace std;
//by zhaocl
int main()
{
CString strSouce = "2221", strLoad;
if (strSouce.SpanIncluding(_T("0123456789"))==strSouce)
{
cout << "all number." << endl;
}
else
{
cout << "not all number." << endl;
}
return 0;
}
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)