恐怕这个领域的每个现有问题/答案似乎都略有不同:
我有一个shared_ptr<vector<Point>> profile
使用迭代器循环的。我想shared_ptr<Point>
为各种目的保留一个循环外,但我在语法上苦苦挣扎。请问你能建议吗?
这是一个基本示例:
shared_ptr<Point> peak;
for (vector<Point>::iterator point=profile->begin(); point!=profile->end(); point++)
{
...
peak = shared_ptr<Point>(*point); // fails
...
}
注意我想使用一个简单的引用/指针Point
会很简单,但我试图避免这种情况,特别是当涉及到堆时。我也意识到在这种情况下我可以使用索引,但这在容器类之间的可转移性较差。