小编DDu*_*k99的帖子

c++11 如何在向量中使用引用?

我正在使用一些容器。参考向量存在问题,无法正常检测。

error C2039: 'vecMsg' : is not a member of 'std::_Vector_iterator <std::_Vector_val>std::_Simple_types<T2 &>>>'
Run Code Online (Sandbox Code Playgroud)

为什么无法识别成员变量?

vector<T1> vec1;
vector<T2> vec2;

vector<T1>::iterater iVec1;
vector<T2>::iterater iVec2;
vector<T2&>::iterater iInVec;

struct T1
{
public:
   vector<T2&> inVec;
}

struct T2
{
public:
    vector<std::string> vecMsg;
}
Run Code Online (Sandbox Code Playgroud)

在 vec1.inVec 中输入一些数据

for(iVec1 = vec1.begin(); iVec1 != vec1.end(); iVec1++)
{
    for(iVec2 = vec2.begin(); iVec2 != vec2.end(); iVec2++)
    {
            // blaa if

            iVec1->inVec.push_back(*iVec2);

    }
}
Run Code Online (Sandbox Code Playgroud)

访问 vec1.inVec 中的 vecMsg

for(iVec1 = vec1.begin(); iVec1 != vec1.end(); iVec1++)
{
    for(iInVec = iVec1->inVec.begin(); iInVec != …
Run Code Online (Sandbox Code Playgroud)

c++ vector

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

如何将vector <T> :: reverse_iterator与一个元素一起使用

我使用了poll()和std :: vector.注册听socket.

std::vector<struct pollfd> fds;
fds.push_back(server_sock);
Run Code Online (Sandbox Code Playgroud)

并添加新的客户端套接字或连接的客户端会话.

// poll() ...
for(std::vector<struct pollfd>::reverse_iterator it = fds.rbegin(); it != fds.rend(); it++) {
    if (it->fd == server_sock) {
        struct pollfd newFd;
        newFd.fd = newClient;
        newFd.events = POLLIN;
        fds.push_back(newFd);
    } else {
        // do something.
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当存在1或2或4个向量的元素时,reverse_iterator无法正常工作.我不明白为什么这项工作.

附上示例代码.

typedef struct tt_a {
    int a;
    short b;
    short c;
} t_a;

vector<t_a> vec;
for (int i = 0; i < 1; i++) {
    t_a t;
    t.a = i;
    t.b = i;
    t.c = …
Run Code Online (Sandbox Code Playgroud)

c++ vector reverse-iterator

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

标签 统计

c++ ×2

vector ×2

reverse-iterator ×1