小编lex*_*xie的帖子

std :: vector :: erase()在擦除时真的使迭代器无效吗?

我正在玩弄着解迭代器失效规则.但是,当我在c ++ 14编译器中运行以下代码时,输​​出真的让我很困惑..

std::vector<int> test = {1,2,3};
auto it = test.begin() + 1;
test.erase(it);
std::cout << *it << std::endl;
Run Code Online (Sandbox Code Playgroud)

输出= 3不应该在此时无效吗?为什么它似乎跳到下一个pos?提前谢谢了

c++ iterator vector c++11

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

如何通过引用传递python?

我试图在BST中实现删除节点.这是我的部分代码.

def delete(node,key):
#Locate that node with value k
    cNode=node
    target=None
    while cNode:
        if cNode.value==key:
            target=cNode
            break
        elif node.value>key:
            cNode=cNode.lChild
        elif node.value<key:
            cNode=cNode.rChild
    target=None
    return node
Run Code Online (Sandbox Code Playgroud)

当我尝试使用上述方法删除叶节点时.我失败了.当方法返回时,它对原始BST没有任何作用.那么这段代码的问题是什么?我假设它应该有关于python如何通过引用传递参数的东西?但我现在很困惑.提前谢谢了.

python pass-by-reference

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

错误:在'Hash_Flag'之前预期','或'...'

我有一个结构,定义为

typedef struct
{
  char* p_hash_start_position;
  size_t hash_capacity;

  //still a flag is needed since we might start from an empty container.
  Hash_Flag hash_status;

  char* p_start_position;
  char* p_current_position;
  size_t capacity;//tagged data capacity
} tagged_data_t;  
Run Code Online (Sandbox Code Playgroud)

枚举定义为

typedef enum Hash_Flag
{
    TD_HASH,
    TD_NO_HASH
} Hash_Flag;
Run Code Online (Sandbox Code Playgroud)

为什么我会收到以下错误?

error: expected ',' or '...' before 'Hash_Flag'
Run Code Online (Sandbox Code Playgroud)

c++ enums struct

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

标签 统计

c++ ×2

c++11 ×1

enums ×1

iterator ×1

pass-by-reference ×1

python ×1

struct ×1

vector ×1