小编Pra*_*ian的帖子

如何将struct成员存储为big endian

我有一个struct类似于:

typedef struct _pair_t{
    uint16_t    keylen;     // 2
    uint32_t    vallen;     // 4
} __attribute__((__packed__)) pair_t;
Run Code Online (Sandbox Code Playgroud)

我将使用mmap从文件中读取,所以我想将数字存储为大端.

我是否需要这样做htobe16/ betoh16或者有一些__attribute__可以为我做到这一点?

c int struct endianness uint32-t

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

C++默认构造函数缺席,我无法编译

我有这个非常简单的课程

class myclass {

public:
    int id;
    double x, y, z;

    myclass() = default; // If I omit this line I get an error
    myclass(int ID, double X, double Y, double Z): id(ID), x(X), y(Y), z(Z) {};
};
Run Code Online (Sandbox Code Playgroud)

如果我省略了该行的行myclass() = default;,然后尝试创建一个对象

#include <vector>
using namespace std;
int main() {

    int ID = 0;
    double X = 1.0, Y = 2.0, Z = 3.0;
    vector<myclass> a_vector(10);

    myclass an_object(ID,X,Y,Z);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误no matching function for call to ‘myclass::myclass() …

c++ default-constructor

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

在结构集中查找项目

我有一个结构集.

struct Neighbour
{
int  ID;
int  Left;
int  Right;
}

set<NodeNeighbour>NextDoor;
Run Code Online (Sandbox Code Playgroud)

如何在此集中找到ID =='要搜索的数字'?

使用straigth前向集,可以使用set.find()简单地找到一个项目.搜索一组结构有什么类似的东西吗?

Thx提前

c++ c++11

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

C++ if/else语句问题

我前几天正在使用xcode,正在开发基于文本的对话游戏.

#include <iostream>

int main()
{
    std::cout<<"Conversation simulator requires you to type in all caps for all  of your replies"<<std::endl;
    std::cout<<"Type your first and last name!"<<std::endl;
    std::string fname = " ";
    std::string lname = " ";
    bool samename = false;
    std::cin>> fname >> lname ;
    if  (fname == "MUSCLE" and lname == "MAN")
        std::cout<< "Wow, we have the same first and last name!"<<std::endl;
        samename = true;
    else
        std::cout<< fname << " "<< lname << "is a very nice name"<<std::endl;

return …
Run Code Online (Sandbox Code Playgroud)

c++ xcode if-statement c++11

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

为什么我应该考虑在C++中使用结构?

在C++中声明结构有没有优势?为什么我不应该只创建一个只包含数据成员的类(即没有方法)?

谢谢,

c++ struct class

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

了解C ++类构造函数中的“内联”吗?

我在Boost库中读取了类address_v4的源代码,并且有几个用BOOST_ASIO_DECL声明的构造函数(定义为内联)

/// Construct an address from raw bytes.
BOOST_ASIO_DECL explicit address_v4(const bytes_type& bytes);

/// Construct an address from a unsigned long in host byte order.
BOOST_ASIO_DECL explicit address_v4(unsigned long addr);
Run Code Online (Sandbox Code Playgroud)

(从此处http://www.boost.org/doc/libs/1_64_0/boost/asio/ip/address_v4.hpp

# define BOOST_ASIO_DECL inline
Run Code Online (Sandbox Code Playgroud)

(从这里http://www.boost.org/doc/libs/1_64_0/boost/asio/detail/config.hpp

那么,为c ++构造函数指定“内联”的目的是什么?它与函数的含义相同还是具有不同的含义?

c++ constructor inline declaration

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

用C++编写的lambda输出

以下代码的输出是0, 0.代码有什么问题?m通过引用传递,它应该是1,对吗?

int main()
{
    int m = 0;
    int n = 0;
    [&, n]() {m = n + 1; };
    cout << m << endl << n << endl;
}
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++14

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

如何处理冲突的函数和变量名?

我正在编写一个简单的套接字C++类,它看起来像这样:

class Socket {

public:
    // ...
    void connect();

private:
    // ...
    int socket;

};
Run Code Online (Sandbox Code Playgroud)

我班有两个问题:

  1. void Socket::connect()
    我正在使用本机Linux套接字接口,这意味着已经有一个int connect(...)我想在Socket::connect()函数内部使用的函数.

  2. int socket
    同样的问题.类变量名与int socket(...)函数具有冲突的名称.

问:我是被迫更改的名称int socketvoid connect()别的东西,还是有解决方法吗?

c++

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

嵌套for循环和重复迭代器

考虑以下嵌套for循环.我无法弄清楚为什么当内部for循环退出时,外部for循环尝试增加迭代器,但显然它不应该这样做.这导致了seg故障.如果具有条件,为什么外部for循环将继续运行cbeg != vec.cend().显然,在内for循环中检查条件没有问题,并且它正确退出.

我不相信任何迭代器在这里被无效,唯一的操作是增量.

vector<int> vec{1,2,3,4};

for (auto cbeg = vec.cbegin(); cbeg != vec.cend(); cbeg++)
{
   for (; cbeg != vec.cend(); cbeg++) {
   }
}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

c++ c++11

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

int,int*和int []与std :: unique_ptr之间的差异

既然你可以做到std::unique_ptr<int> upi{new int},我立即对如何为什么std::unique_ptr<int*> upi{new int[42]{}}不起作用感到困惑.有人可以解释以下片段之间的区别吗?

{
    std::unique_ptr<int> upi{new int[42]{}};
    upi.get()[0];
}

// Doesn't work
{
    std::unique_ptr<int> upi{new int[42]{}};
    upi[0];
}

{
    std::unique_ptr<int[]> upi{new int[42]{}};
    upi.get()[0];
}    

{
    std::unique_ptr<int[]> upi{new int[42]{}};
    upi[0];
}     

// Doesn't work
{
    std::unique_ptr<int*> upi{new int[42]{}};
    upi.get()[0];
}      

// Doesn't work    
{
    std::unique_ptr<int*> upi{new int[42]{}};
    upi[0];
}
Run Code Online (Sandbox Code Playgroud)

编译器错误:

prog.cpp: In function ‘int main()’:
prog.cpp:8:20: warning: value computed is not used [-Wunused-value]
         upi.get()[0];
                    ^
prog.cpp:14:12: error: no match for ‘operator[]’ (operand types are ‘std::unique_ptr<int>’ …
Run Code Online (Sandbox Code Playgroud)

c++ pointers unique-ptr c++11

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

如何关闭Microsoft编译器(cl)中的异常?

我用什么编译器标志来完全摆脱异常处理?我根本不使用它们,但编译器仍然生成.pdata和.xdata部分,仅用于异常处理.

c++ visual-c++ cl

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

非初始化reference_wrapper的返回值

reference_wrapper当我resize()在下面的向量时,指向何处?这是一个未定义的行为吗?我该怎么做才能安全?

std::vector < std::reference_wrapper <int> > vec;
vec.resize(10);
Run Code Online (Sandbox Code Playgroud)

c++ vector c++11 reference-wrapper

-3
推荐指数
1
解决办法
393
查看次数

内联构造函数的未解析的外部

我有一个简单的二维向量类,它实现为内联函数/运算符.

但是,当我想要实例化没有参数的Vector时,我得到Unresolved externals错误,我不知道为什么.但是,当我使用带参数的其他构造函数时,它没问题.

这是我的班级:

class Vector2
{
public:
   float x;
   float y;

public:
   //Constructors
   Vector2() : x(0.0f), y(0.0f) {}
   Vector2(const float _x, const float _y) : x(_x), y(_y) { }
};
Run Code Online (Sandbox Code Playgroud)

创建导致错误的实例:

Vector2 a();
Run Code Online (Sandbox Code Playgroud)

但是当用其他构造函数实例化时,它没问题.这也有效:

Vector2 a = Vector2();
Run Code Online (Sandbox Code Playgroud)

我明白了:

1>main.obj : error LNK2019: unresolved external symbol "class GreenEye::Maths::Vector2 __cdecl a(void)" (?a@@YA?AVVector2@Maths@GreenEye@@XZ) referenced in function main
1>X:\Development\Projects\Engine\x64\Debug\Test.exe : fatal error LNK1120: 1 unresolved external
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢.

c++

-3
推荐指数
1
解决办法
101
查看次数