请告诉我,是否有可能以某种方式找出多线程程序使用了多少个处理器核心?
它的操作时间不超过 1 秒,因此使用 ps 等实用程序获取此类信息对我来说是有问题的。也许还有其他一些方法?谢谢。
请告诉我,是否有可能以某种方式找出多线程程序使用了多少个处理器核心?
它的操作时间不超过 1 秒,因此使用 ps 等实用程序获取此类信息对我来说是有问题的。也许还有其他一些方法?谢谢。
请就下一个问题提出建议。有一个嵌入式系统,带有一个旧的、非常精简的 Linux 发行版,带有 glibc 2.20。不幸的是,您不能在那里升级 glibc。
我需要使用 glibc 2.20 编写一个在此系统上运行的 C++ 程序。然而,现代发行版有更新得多的 glibc 版本,所以我编写的程序不能在那里运行(我得到版本“GLIBC_2.34”未找到错误)。
网上到处写着最好的选择是在所需glibc或更少的系统上编译程序(例如,Ubuntu 14.04使用glibc 2.19,这很适合我)。在一个门户网站上也有人建议在单独的目录中安装 glibc 2.34。但是,不幸的是,我不明白如何指定程序所需的库的路径。或者这个选项根本不起作用?对不起,如果这是一个愚蠢的问题,不幸的是我没有这方面的经验。
请告诉我在以下情况下该怎么做。
class A {
B* b;
public:
A() {
b = new B(*this);
}
B* getB();
}
class B {
A& a;
public:
B(A& a) {
this->a = a;
}
void foo() {
/*
вызов функции из другой библиотеки
для вызываемой функции важно знать
некоторые поля объекта a
*/
}
}
int main() {
A* a = new A();
a->getB()->foo();
}
在我看来,两个类的对象的相互存储不是一个好主意。A类是主要的,由几十个与B类似的类组成。也就是说,在每个像B的类中,都必须存储对A类对象的引用。同时,B类不能没有A类而存在,并且类 A 很容易在没有类 B 的情况下存在。因此,在一种情况下使用引用,在另一种情况下使用指针。
为什么我将 B 类逻辑与 A 类分开?不幸的是,B 类包含太多实现某些任务的方法。对此,我认为不值得杀掉A类,但是把它单独分成一个类是有道理的。
事实上,在内心深处,希望这种情况有某种模式。但是,翻阅模式列表,我没有找到类似的东西......
请告诉我使用这样的东西是否正确:
class B;
class A {
B* b;
};
class B {
A& a;
};
事实是,没有A类,B类就不能存在。也就是说,有些A类落在B类上。同时,B类必须知道它属于谁。我有两个选择来解决这个问题:
a->getB()->doSomethingInBClass();
.但是,在内心深处,还是希望有某种模板来应对这种情况——我就是找不到……
请告诉我如何在代码中正确实现以下想法。有一个抽象类Item(主题),从中继承了Money、Phone、Weapon等类。还有一个类Player(玩家),里面可以有上面列出的物品(钱、电话、武器)。我为自己看到了一种解决方案:制作 Player 类的 Money、Phone、Weapon、... 类字段。但是,在这种情况下,我在使用 setter 和 getter 时遇到了问题。例如。
class Money : Items {
protected:
int value;
public:
Money() : Money(0) {}
Money(const int value) : value(value) {}
Money(const Money& money) : Money(money.value) {}
void setValue(const int value) { this->value = value; }
int getValue() const { return this->name; }
}
class Player {
protected:
string name;
Money money;
public:
Player() : Player("") {}
Player(const string name) : name(name), Money(0) {}
Player(const Player& player) : Player(player.player) {}
void setName(const string name) { this-> name = name; }
string getName() const { return this->name; }
void setMoney(const int value) { this->money.setValue(value); }
int getMoney() const { return this->money.getValue(); }
}
如果 Money 类中有任何更改(setter 中的另一个必需字段或类似的东西),那么也必须在 Player 类中进行更改。是否有可能以某种方式更有效地实现这一点?当然还有更好的选择。谢谢你。
请告诉我,我不太明白:如何设置存储头文件的目录的路径。cpp 文件中的相对路径使用起来非常不方便(尤其是在我的架构中)。我不明白:这是为使用相同cmake的编译器设置的,或者在IDE设置中为IDE设置。
好吧,一个小例子:
在 mine.cpp 中使用以下行非常不方便:
#include "../include/mine.h"
我想立即向系统说明所有头文件都应该在“../include/”中查找。然后,相应地,我可以简单地使用:
#include "mine.h"
如果我理解正确,请告诉我要在 CLion 中获取 DLL 库,只需在 CMake 文件中输入以下内容即可:
add_library(project_name SHARED src/library.cpp src/library.h)
事实是我在 CMakeLists.txt 中准确输入了这个,但是在组装后我得到了一个无法动态连接到另一个项目的库(对于测试,我尝试动态连接 libmariadb.dll 库 - 一切正常,所以我连接它正确)。
我也附上代码。
1.库.h
#pragma once
#ifdef MY_LIB
#define MY_LIB __declspec(dllexport)
#else
#define MY_LIB __declspec(dllimport)
#endif
extern "C" MY_LIB void testa(int a);
extern "C" MY_LIB bool testb();
2.库.cpp
#include "library.h"
#include <iostream>
void testa(int a) {
std::cout << "This is 'A' function" << std::endl;
}
bool testb() {
std::cout << "This is 'B' function" << std::endl;
return true;
}
3.CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project (MY_LIB)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y -Wall")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/pdb)
#-------------------- Create a library -----------------------------------------
#Generate the shared library from the library sources
#-------------------------------------------------------------------------------
include_directories("${PROJECT_SOURCE_DIR}/include")
add_library(${PROJECT_NAME}
SHARED
src/library.cpp
)
include(GenerateExportHeader)
generate_export_header(${PROJECT_NAME})
4.程序的代码,我检查库的工作。我启动它并在控制台中指定库的名称(包括 .dll)。库本身 (name.dll) 位于该程序所在的文件夹中(连同 .exe 文件)。如果我将任何其他 dll 库放入同一个文件夹并在控制台中输入其名称,则它会成功加载(我没有收到消息“库...未找到”)。但是,如果我指定我的 dll 的名称,我会收到一个错误,即库未加载(...未找到)。
#include <iostream>
#include <Windows.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
typedef int (*function)(int a);
std::wstring s2ws(const std::string& s) {
int len;
int slength = (int)s.length() + 1;
len = MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, 0, 0);
wchar_t* buf = new wchar_t[len];
MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, buf, len);
std::wstring r(buf);
delete[] buf;
return r;
}
int main() {
string name;
cout << "Enter the name of library: ";
cin >> name;
wstring stemp = s2ws(name);
LPCWSTR result = stemp.c_str();
HMODULE hm = LoadLibrary(result);
if (hm == NULL) {
cout << "Library " << name << " is not found!" << endl;
system("pause");
}
else {
cout << "Library " << name << " is loaded" << endl;
function testa= (function)GetProcAddress(hm, "testa");
testa(321);
}
FreeLibrary(hm);
_getch();
return 0;
}
谢谢!
请告诉我我的错误是什么?我试图将文本和图像放在一条直线上,使图像完全压在右侧(没有缩进),并且文本位于左边缘和图像之间。由于某种未知原因,文本被压到了左边缘,我对此无能为力。
哦,是的,因为会有几个这样的条带(它们都在主类中),我为 main 制作了一个 flexbox(列对齐),并根据上述方案对齐每个这样的条带。
<main class="main">
<div class="home">
<div class="quote">
<div class="text">
<a>Здесь какой-то мой текст</a>
</div>
</div>
<div class="image">
<img src="https://aproekt.ucoz.net/12/man-with-mic-02.png" alt="main home background image" width="50%" height="50%">
</div>
</div>
<div class="home2">
Ха-ха
</div>
<div class="home3">
</div>
</main>
.main {
display: flex;
flex-direction: column;
}
.main .home {
display: flex;
align-items: center;
justify-content: flex-start;
background-color: #FF0000;
color: #FFFFFF;
}
.main .home .image {
display: flex;
align-items: center;
justify-content: flex-end;
}
.main .home .quote {
}
.main .home .quote a {
font-size: 24px;
}
谢谢!
请告诉我以下内容。我通过 __get 魔术方法读到,我可以访问一个不存在的类字段。如果这个字段是一个二维数组呢?我可以使用这样的东西吗?
$object->xyzw->prop2;
如果可以的话,在这种情况下需要在 __get 方法中进行哪些更改才能完成成熟的工作?
class Object {
private $property;
public function __contructor() {
// for example
$this->property['xyzw']['prop1'] = 2;
$this->property['xyzw']['prop2'] = 3;
$this->property['abcd']['prop3'] = 4;
$this->property['abcd']['prop4'] = 5;
}
public function __get($property) {
return $this->property[$property];
}
}
谢谢!
你能告诉我可能是什么问题吗?我正在使用 PHP 7.4.4。一旦我指向类中字段的类型,脚本就不会立即工作。有多少网站翻遍了,到处都写着 PHP 7.4 支持字段类型。此外,PHPStorm 本身建议我指定字段的类型(下划线带有指定类型的提议)。
我如何使用的一个例子:
class SomeClass {
private string $user;
}
我需要将房间模型添加到我的 Android 应用程序(我在 Android Studio 中开发)。我会在 Blender 中画出这个房间。以及如何更进一步?如何通过 Android Studio 添加?
请告诉我,是否有可能以某种方式在 PHP 中组织项目文件的自动链接?事实是已经有大约 100 个文件。并且在每一个中,将 require_once 几个目录写到其他文件夹,然后也往下走……一般来说,这非常不方便。或者也许建议另一种选择?由于我查看了 PHP 中现成项目的示例,但没有一个使用 require / include。不知何故,这是以不同的方式完成的。
还有更多,请提示。对于错误处理程序,是创建单个命名空间异常更好,还是为每一个异常创建更好?(带有数据库的错误处理程序是一个空格,带有文件的错误处理程序是另一个空格,依此类推)。
谢谢!
请告知这个问题。
我在 PHP 中有一些基本的用户类(用于与用户一起工作的类)。好吧,例如,这个类包含了一些字段(大约有30个,但我以4个为例):用户ID,姓氏和名字,年龄。此类构造函数的唯一参数是 userID - 用户 ID。
现在问题本身。您认为哪些选项最成功,或者请提供您自己的选项:
(因此,第1-3段之间的区别在于,第1段我一次填写各种变量,第2段我每次都重新获取数据,而第3段我获取一次值,保存并保存对其进行操作)。
Ps 也许你会说没有必要做这一切,额外的麻烦。但目前我有两个任务摆在我面前:写一些我自己的和通用的东西,这样我就可以将现成的实现(在这种情况下,类)应用到新项目中,以及更多地使用 PHP 语言,特别是 - 它实现 OOP 概念的能力。
谢谢!
我PHPStorm
与我的数据库建立了连接。连接成功。
我的表的结构现在显示在选项卡中Database (View -> Tool Windows -> Database)
。
但是,所有我SQL запросы
的都以黄色和таблицы и столбцы
红色突出显示。IDE 提到没有这样的表和列的事实,并建议创建它们。尽管选项卡Database
具有相同的表和列。
您能告诉我如何删除这个黄色突出显示并让 IDE “看到” SQL 查询中的表和列吗?