他们有许多链接反过来但我无法在我的特定情况下找到从Eigen :: Matrix或Eigen :: VectorXd获取std :: vector.
根据stackoverflow和cppreference中描述的迭代器失效规则,我知道除非发生重新哈希,否则迭代器不会对 unordered_map 失效。
如果我使用 std::vector 类比,那么这是否意味着所有插入也发生在迭代器当前指向的位置之前?
我正在修改正在迭代的 unordered_map ,并希望确保不会因迭代器失效而导致任何中断。我至少确保避免使用保留关键字unordered_map Reserve重新哈希
这是我正在编写的示例代码:
// Function to return vector containing the subvector of inputVector with sum desiredSum, this function returns empty vector if sum not found
std::vector<int> sumVectorFunc(const std::vector<int>& inputVector, const int desiredSum){
std::unordered_map< int,std::vector<int> > sumToSubVector{};
sumToSubVector.reserve(desiredSum+1);
// initialization with the zero sum
sumToSubVector[0] = std::vector<int>{};
for(auto itVector : inputVector){ // iterate over the vector of elements
std::unordered_set<int> numbersAddedThisCycle{};
for(auto itSubVectors : sumToSubVector){ // iterate …Run Code Online (Sandbox Code Playgroud)