在没有访问向量的情况下找到迭代器的结尾

时间:2018-09-19 14:34:39

标签: c++ c++11 iterator

在没有访问向量的情况下,有没有办法仅使用迭代器来确定迭代器是否到达向量的结尾?

例如,使用以下功能,如何遍历iter:

my $home_directory ="home/testuser";
my $remote_path=$home_directory."/".$name."/".$destination_dir;

my $currentPath = '';
foreach my $directory (split '/', $remote_path) {
    $currentPath = "$currentPath/$directory";
    $ftp->find("$currentPath", on_error => sub { print "Creating directory\n"; $ftp->mkdir("$currentPath") });
}

1 个答案:

答案 0 :(得分:3)

不能。这就像在不获取数组大小的情况下获得指向数组的指针。除非存在哨兵元素(如c字符串中的空字符),否则无法知道容器在哪里停止。

您需要引用向量,以便对其进行迭代,或者还需要将结束迭代器传递给函数,以便为循环设置边界。