Skip to content

Latest commit

 

History

History
68 lines (61 loc) · 1.96 KB

README.md

File metadata and controls

68 lines (61 loc) · 1.96 KB

C++ std::vector operation

Common operation

  • initialization of vector

  • reduce vector based on the other vector

void reduceVector(vector<cv::Point2f> &v, vector<uchar> status)
{
    int j = 0;
    for (int i = 0; i < int(v.size()); i++)
        if (status[i])
            v[j++] = v[i];
    v.resize(j);
}
  • initialize std::map using emplace_back()
/* prepare the output of feature tracking */
map<int, vector<pair<int, Eigen::Matrix<double, 7, 1>>>> featureFrame;
for (size_t i = 0; i < ids.size(); i++)
{
    int feature_id = ids[i];
    double x, y ,z;
    x = cur_un_pts[i].x;
    y = cur_un_pts[i].y;
    z = 1;
    double p_u, p_v;
    p_u = cur_pts[i].x;
    p_v = cur_pts[i].y;
    int camera_id = 0;
    double velocity_x, velocity_y;
    velocity_x = pts_velocity[i].x;
    velocity_y = pts_velocity[i].y;

    Eigen::Matrix<double, 7, 1> xyz_uv_velocity;
    xyz_uv_velocity << x, y, z, p_u, p_v, velocity_x, velocity_y;
    featureFrame[feature_id].emplace_back(camera_id,  xyz_uv_velocity);
}
  • initialization of std::map using insert
vector<cv::Point2f> pts_velocity;
cur_id_pts.clear();
for (unsigned int i = 0; i < ids.size(); i++)
{
    /* construct the cur_id_pts based on pts and ids */
    cur_id_pts.insert(make_pair(ids[i], pts[i]));
}
  • erase the first element in the vector
std::vector<double> vecTmp;
std::vector<double>::iterator iter;
iter = vecTmp.begin();
vecTmp.erase(iter);

Reference

  1. Visualization.cpp in VINS-Fusion

Contact