在没有访问向量的情况下,有没有办法仅使用迭代器来确定迭代器是否到达向量的结尾?
例如,使用以下功能,如何遍历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") });
}
答案 0 :(得分:3)
不能。这就像在不获取数组大小的情况下获得指向数组的指针。除非存在哨兵元素(如c字符串中的空字符),否则无法知道容器在哪里停止。
您需要引用向量,以便对其进行迭代,或者还需要将结束迭代器传递给函数,以便为循环设置边界。