小编Ahm*_*med的帖子

向量,结构和std :: find

再次我与矢量.我希望我不会太讨厌.我有这样的结构:

struct monster 
{
    DWORD id;
    int x;
    int y;
    int distance;
    int HP;
};
Run Code Online (Sandbox Code Playgroud)

所以我创建了一个矢量:

std::vector<monster> monsters;
Run Code Online (Sandbox Code Playgroud)

但现在我不知道如何搜索向量.我想在矢量中找到怪物的ID.

DWORD monster = 0xFFFAAA;
it = std::find(bot.monsters.begin(), bot.monsters.end(), currentMonster);
Run Code Online (Sandbox Code Playgroud)

但显然它不起作用.我想只通过结构的.id元素进行迭代,我不知道该怎么做.非常感谢帮助.谢谢 !

c++ vector find data-structures

30
推荐指数
4
解决办法
5万
查看次数

QByteArray为整数

正如你可能已经从标题中找到的那样,我在转换QByteArray为整数时遇到了问题.

 QByteArray buffer = server->read(8192);
 QByteArray q_size = buffer.mid(0, 2);
 int size = q_size.toInt();
Run Code Online (Sandbox Code Playgroud)

但是,size为0. buffer没有收到任何ASCII字符,我相信toInt()如果它不是ASCII字符,该函数将不起作用.本int size应该是37(0x25),但-正如我已经说过-这是0.

的q_sizeIS 0x2500(或其它端序顺序- 0x0025).

这有什么问题?我很确定能q_size保存我需要的数据.

qt bytearray

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

QObject:无法为位于不同线程中的父级创建子级

编辑:

我试着做你们在评论中告诉我的事情......:

Citizen * c = new Citizen(this);

QThread thread;
c->moveToThread(&thread);

connect(&thread, SIGNAL(started()), c, SLOT(ProcessActions()));
thread.start();
Run Code Online (Sandbox Code Playgroud)

这会产生更多错误:

QThread: Destroyed while thread is still running
ASSERT failure in QThread::setTerminationEnabled(): "Current thread was not started with QThread.", file c:\ndk_buildrepos\qt-desktop\src\corelib\thread\qthread_win.cpp, line 542
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
QObject::killTimers: timers cannot be stopped from another thread
Run Code Online (Sandbox Code Playgroud)

我遇到了这个错误的问题......我已经坚持了2天,无法得到解决方案.

标题:

class Citizen : public QThread
{
Q_OBJECT    
    QNetworkAccessManager * manager;

private slots:
    void onReplyFinished(QNetworkReply* net_reply);

public:
    Citizen(QObject …
Run Code Online (Sandbox Code Playgroud)

c++ qt multithreading asynchronous qnetworkaccessmanager

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

向量,迭代器和std :: find

有没有办法在不同的向量中使用不同类型的迭代器?或者,是否有一个函数将向量中的元素的位置作为整数返回?

std::vector<DWORD>::iterator it;        // Iterator

// monsterQueue is a <DWORD> vector

it = std::find(bot.monsterQueue.begin(), bot.monsterQueue.end(), object);   
// Check do we have the object in the queue

if(it != bot.monsterQueue.end())    // If we do have it
{
    bot.monsterDists.at(it) = mobDist; // monsterDists is <int> vector
    bot.monsterCoordX.at(it) = PosX; // monsterCoordX is <int> vector
    bot.monsterCoordY.at(it) = PosY; // monsterCoordY is <int> vector too
}
Run Code Online (Sandbox Code Playgroud)

这是一些示例代码,有没有人有任何指针?

c++ iterator vector

3
推荐指数
3
解决办法
9267
查看次数

将文本文件合并到应用程序中?

无论如何,我可以将一个非常大的文本文件(大约700KB)合并到程序本身,所以我不必将文本文件一起发送到应用程序目录中?这是我第一次尝试做这样的事情,我不知道从哪里开始.

非常感谢帮助(:

c++ import file text-files

0
推荐指数
2
解决办法
203
查看次数