在结构中初始化空向量 - c ++

Tom*_*asz 23 c++ vector

我有一个struct:

typedef struct user {
    string username;
    vector<unsigned char> userpassword;
} user_t;
Run Code Online (Sandbox Code Playgroud)

我需要userpassword用空的初始化vector:

struct user r={"",?};
Run Code Online (Sandbox Code Playgroud)

我该?怎么办呢?

Die*_*ühl 27

双方std::stringstd::vector<T>有构造函数初始化对象设置为空.你可以使用,std::vector<unsigned char>()但我会删除初始化程序.


Ker*_* SB 10

像这样:

#include <string>
#include <vector>

struct user
{
    std::string username;
    std::vector<unsigned char> userpassword;
};

int main()
{
    user r;   // r.username is "" and r.userpassword is empty
    // ...
}
Run Code Online (Sandbox Code Playgroud)


Luc*_*ore 7

怎么样

user r = {"",{}};
Run Code Online (Sandbox Code Playgroud)

要么

user r = {"",{'\0'}};
Run Code Online (Sandbox Code Playgroud)

要么

user r = {"",std::vector<unsigned char>()};
Run Code Online (Sandbox Code Playgroud)

要么

user r;
Run Code Online (Sandbox Code Playgroud)