use*_*680 1 c++ swap stl rename reference
我想做以下事情.但不知道如何:
//have two vectors: vector1 (full of numbers), vector2 (empty)
//with vectors, I mean STL vectors
//outer loop
{
//inner loop
{
//vector2 gets written more and more over iterations of inner loop
//elements of vector1 are needed for this
} //end of inner loop
//now data of vector1 is not needed anymore and vector2 takes the role of
//vector 1 in the next iteration of the outer loop
//old approach (costly):
//clear vector1 ,copy vector2's data to vector1, clear vector2
//wanted:
//forget about vector1's data
//somehow 'rename' vector2 as 'vector1'
//(e.g. call vector2's data 'vector1')
//do something so vector2 is empty again
//(e.g. when referring to vector2 in the next
//iteration of outer loop it should be an empty vector in the
//beginning.)
} // end of outer loop
Run Code Online (Sandbox Code Playgroud)
我在努力
vector<double> &vector1 = vector2;
vector2.clear();
Run Code Online (Sandbox Code Playgroud)
但我认为问题是vector1然后是对vector2的引用,然后将其删除.
有任何想法吗 ?
可能的用途是std::vector::swap:
vector<double> vector1;
vector1.swap(vector2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |