C++ 未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数

图片说明0x0FA5E636 (ucrtbased.dll) (set.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数。 这是哪里错了

 #include<iostream>
#include<set>
#include<vector>
#include<string>
using namespace std;
string find_book(vector<string> & abooklist, set<string> &abooks);
int main()
{
    vector <string> booklist;// the books I wanna read
    booklist.push_back("a");
    booklist.push_back("b");
    booklist.push_back("c");

    set<string> books;//the books I have read
    books.insert("a");
    books.insert("c");
    books.insert("x");
    books.insert("g");

    cout<<"the book for you : "<<find_book(booklist, books)<<endl;
    getchar();
    return 0;
}

string find_book( vector<string> & abooklist, set<string> &abooks )
{
    //find a book from booklist that can not be found in books
    vector<string>::iterator iter = abooklist.begin();
    while (iter != (abooklist.end()))
    {
        if (!abooks.count(*iter))
        {
            string temp=*iter;
            abooks.insert(*iter);
            abooklist.erase(iter);//remove the book found int booklist 
                                                                            //and put it in books
            return temp;
        }

        iter++;
    }
    return "not found";
}

c++

2个回答

迭代器删除要注意处理

iter = abooklist.erase(iter);

LZCitlearner
LClearner 还是不行哦
2 年多之前 回复

不知道你想问什么? 如果你想知道为什么会弹框? 原因是因为你调用了这个_DEBUG_ERROR这个函数,这个函数的作用就是弹出错误框。
如果你问为什么会走到_DEBUG_ERROR这个函数那么你要找的为什么_Mycont== 0 的原因了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C++ 未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数
![图片说明](https://img-ask.csdn.net/upload/201707/30/1501383565_65269.png)0x0FA5E636 (ucrtbased.dll) (set.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数。 这是哪里错了 ``` #include<iostream> #include<set> #include<vector> #include<string> using namespace std; string find_book(vector<string> & abooklist, set<string> &abooks); int main() { vector <string> booklist;// the books I wanna read booklist.push_back("a"); booklist.push_back("b"); booklist.push_back("c"); set<string> books;//the books I have read books.insert("a"); books.insert("c"); books.insert("x"); books.insert("g"); cout<<"the book for you : "<<find_book(booklist, books)<<endl; getchar(); return 0; } string find_book( vector<string> & abooklist, set<string> &abooks ) { //find a book from booklist that can not be found in books vector<string>::iterator iter = abooklist.begin(); while (iter != (abooklist.end())) { if (!abooks.count(*iter)) { string temp=*iter; abooks.insert(*iter); abooklist.erase(iter);//remove the book found int booklist //and put it in books return temp; } iter++; } return "not found"; } ```
opencv release下程序运行报错,求指教ORZ
多相机参数标定。VS2015+opencv2.4.13 代码运行到匹配关系那一部分就会崩。虽然找到了问题在哪,但不会解决,求大神指教。报错内容为:0x00007FF8DCE3D3D8 (ucrtbase.dll) (calib_stitch.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数。 下面是代码: #include <iostream> #include <fstream> #include <string> #include "opencv2/core/core.hpp" #include "opencv2/opencv_modules.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/stitching/detail/autocalib.hpp" #include "opencv2/stitching/detail/blenders.hpp" #include "opencv2/stitching/detail/camera.hpp" #include "opencv2/stitching/detail/exposure_compensate.hpp" #include "opencv2/stitching/detail/matchers.hpp" #include "opencv2/stitching/detail/motion_estimators.hpp" #include "opencv2/stitching/detail/seam_finders.hpp" #include "opencv2/stitching/detail/util.hpp" #include "opencv2/stitching/detail/warpers.hpp" #include "opencv2/stitching/warpers.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/nonfree/nonfree.hpp" #include <opencv2/calib3d/calib3d.hpp> using namespace std; using namespace cv; using namespace cv::detail; // Default command line args bool preview = false; bool try_gpu = false; double work_megapix = -0.6; // 缩放参数 double seam_megapix = 0.1; double compose_megapix = -1; float conf_thresh = 1.f; string features_type = "sift"; //orb surf sift string ba_cost_func = "reproj"; //reproj ray string ba_refine_mask = "xxllx"; bool do_wave_correct = true; WaveCorrectKind wave_correct = detail::WAVE_CORRECT_HORIZ; bool save_graph = true; std::string save_graph_to; string warp_type = "spherical"; //spherical cylindrical plane int expos_comp_type = ExposureCompensator::GAIN_BLOCKS; //GAIN,OR NO float match_conf = 0.3f; string seam_find_type = "gc_color"; //no voronoi gc_color gc_colorgrad dp_color dp_colorgrad int blend_type = Blender::MULTI_BAND; // Blender::FEATHER Blender::MULTI_BAND float blend_strength = 5;//0就是关,默认5 string result_name = "result.jpg"; void detection(const vector<string> imagelist, vector<vector<Point2f>>& ransac_image_points_seq) { if (imagelist.size() % 2 != 0) { cout << "Error: the image list contains odd (non-even) number of elements\n"; return; } bool displayCorners = true;//true; const int maxScale = 2; const float squareSize = 1.f; // Set this to your actual square size // ARRAY AND VECTOR STORAGE: Size boardSize = Size(11, 8); vector<vector<Point2f>> imagePoints[2]; vector<vector<Point3f> > objectPoints; Size imageSize; int i, j, k, nimages = (int)imagelist.size() / 2; imagePoints[0].resize(nimages); imagePoints[1].resize(nimages); vector<string> goodImageList; for (i = j = 0; i < nimages; i++) { for (k = 0; k < 2; k++) { const string& filename = imagelist[i * 2 + k]; Mat img = imread(filename, 0); if (img.empty()) break; if (imageSize == Size()) imageSize = img.size(); else if (img.size() != imageSize) { cout << "The image " << filename << " has the size different from the first image size. Skipping the pair\n"; break; } bool found = false; vector<Point2f>& corners = imagePoints[k][j]; for (int scale = 1; scale <= maxScale; scale++) { Mat timg; if (scale == 1) timg = img; else resize(img, timg, Size(), scale, scale); found = findChessboardCorners(timg, boardSize, corners, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_NORMALIZE_IMAGE); if (found) { if (scale > 1) { Mat cornersMat(corners); cornersMat *= 1. / scale; } break; } } if (displayCorners) { //cout << filename << endl; Mat cimg, cimg1; cvtColor(img, cimg, COLOR_GRAY2BGR); drawChessboardCorners(cimg, boardSize, corners, found); double sf = 640. / MAX(img.rows, img.cols); resize(cimg, cimg1, Size(), sf, sf); namedWindow("corners", 0); imshow("corners", cimg1); char c = (char)waitKey(1); if (c == 27 || c == 'q' || c == 'Q') //Allow ESC to quit exit(-1); } else putchar('.'); if (!found) break; cornerSubPix(img, corners, Size(11, 11), Size(-1, -1), TermCriteria(CV_TERMCRIT_ITER + CV_TERMCRIT_EPS, 30, 0.01)); /* 亚像素精确化 */ //find4QuadCornerSubpix(img, corners, Size(5, 5)); //对粗提取的角点进行精确化 } if (k == 2) { goodImageList.push_back(imagelist[i * 2]); goodImageList.push_back(imagelist[i * 2 + 1]); j++; } } cout << j << " pairs have been successfully detected.\n"; nimages = j; if (nimages < 2) { cout << "Error: too little pairs to run the calibration\n"; return; } imagePoints[0].resize(nimages); imagePoints[1].resize(nimages); vector<vector<Point2f>> image_points_seq; for (int i = 0; i < 2; i++) { vector<Point2f> buf; for (int j = 0; j < imagePoints[i].size(); j++) { for (int k = 0; k < imagePoints[i][j].size(); k++) { buf.push_back(imagePoints[i][j][k]); } } image_points_seq.push_back(buf); } //RANSAC cout << image_points_seq[0].size() << endl; cout << image_points_seq[1].size() << endl; vector<uchar> mask; Mat h = findHomography(image_points_seq[0], image_points_seq[1], mask, CV_FM_RANSAC); vector<Point2f> point1, point2; for (int i = 0; i < image_points_seq[0].size(); i++) { //if (mask[i] == 1) { point1.push_back(image_points_seq[0][i]); point2.push_back(image_points_seq[1][i]); } } ransac_image_points_seq.push_back(point1); ransac_image_points_seq.push_back(point2); //cout << imagePoints[0].size() << endl; //cout << imagePoints[1].size() << endl; //return imagePoints; } int main(int argc, char* argv[]) { int64 app_start_time = getTickCount(); string xml_name = "144-146-147-1481.yaml"; vector<vector<string>> img_names; vector<vector<string>> names; char file_name[256]; int num_pairs = 3; int nums_pairs_count[4] = { 23,23,20 }; for (int i =0; i <= num_pairs; i++) { vector<string> temp; for (int j = 1; j <= nums_pairs_count[i]; j++) { sprintf(file_name, "1234/%d/1/(%d).jpg", i, j); temp.push_back(file_name); sprintf(file_name, "1234/%d/2/(%d).jpg", i, j); temp.push_back(file_name); } names.push_back(temp); } //棋盘格检测 vector<vector<Point2f>> double_image_points_seq; int match_num[4][4] = {0}; int match_start[4][4][2] = {0}; //vector<vector<Point2f>> ransac_image_points_seq; //detection(names[0], ransac_image_points_seq); //match_num[0][1] = ransac_image_points_seq[0].size(); //match_num[1][0] = ransac_image_points_seq[0].size(); //match_start[0][1] = 0; //match_start[1][0] = 0; //match_num.push_back(ransac_image_points_seq[0].size()); //cout << ransac_image_points_seq[0].size() << endl; //cout << ransac_image_points_seq[1].size() << endl; for (int i = 0; i < num_pairs; i++) { vector<vector<Point2f>> ransac_image_points_seq; detection(names[i], ransac_image_points_seq); if (i != 0) { match_num[i][i + 1] = ransac_image_points_seq[0].size(); match_num[i+1][i] = ransac_image_points_seq[0].size(); match_start[i][i + 1][0] = match_num[i - 1][i]; match_start[i][i + 1][1] = 0; match_start[i+1][i][0] = 0; match_start[i+1][i][1] = match_num[i - 1][i]; for (int j = 0; j < ransac_image_points_seq[0].size(); j++) { double_image_points_seq[double_image_points_seq.size() - 1].push_back(ransac_image_points_seq[0][j]); } double_image_points_seq.push_back(ransac_image_points_seq[1]); } else { double_image_points_seq.push_back(ransac_image_points_seq[0]); double_image_points_seq.push_back(ransac_image_points_seq[1]); match_num[0][1] = ransac_image_points_seq[0].size(); match_num[1][0] = ransac_image_points_seq[0].size(); match_start[0][1][0] = 0; match_start[0][1][1] = 0; match_start[1][0][0] = 0; match_start[1][0][1] = 0; } } //特征点 vector<ImageFeatures> features(num_pairs + 1); for (int i = 0; i <= num_pairs; i++) { vector<KeyPoint> keypoints; for (int j = 0; j < double_image_points_seq[i].size(); j++) { KeyPoint point; point.pt = double_image_points_seq[i][j]; keypoints.push_back(point); } features[i].keypoints = keypoints; features[i].img_size = Size(2560, 1440); features[i].img_idx = i; } //匹配关系 vector<MatchesInfo> pairwise_matches; for (int i = 0; i <= num_pairs; i++) { for (int j = 0; j <= num_pairs; j++) { MatchesInfo matches_info; if(j==i+1 || j==i-1) { vector<DMatch> match(match_num[i][j]); vector<uchar> mask(match_num[i][j]); for (int n = 0; n < match_num[i][j]; n++) { match[n].queryIdx = match_start[i][j][0] + n; match[n].trainIdx = match_start[i][j][1] + n; mask[n] = 1; } matches_info.src_img_idx = i; matches_info.dst_img_idx = j; matches_info.matches = match; //info.inliers_mask = inliers_mask; //info.num_inliers = match_num[i][j]; //vector<Point2f> pts_src, pts_dst; Mat src_points(1, static_cast<int>(matches_info.matches.size()), CV_32FC2); Mat dst_points(1, static_cast<int>(matches_info.matches.size()), CV_32FC2); for (int n = 0; n < match_num[i][j]; n++) { const DMatch& m = matches_info.matches[n]; Point2f p = features[i].keypoints[m.queryIdx].pt; p.x -= features[i].img_size.width * 0.5f; p.y -= features[i].img_size.height * 0.5f; src_points.at<Point2f>(0, static_cast<int>(n)) = p; p = features[j].keypoints[m.trainIdx].pt; p.x -= features[j].img_size.width * 0.5f; p.y -= features[j].img_size.height * 0.5f; dst_points.at<Point2f>(0, static_cast<int>(n)) = p; //pts_src.push_back(features[i].keypoints[match[n].queryIdx].pt); //pts_dst.push_back(features[j].keypoints[match[n].trainIdx].pt); } //vector<uchar> mask; matches_info.H = findHomography(src_points, dst_points, matches_info.inliers_mask,CV_FM_RANSAC); //matches_info.H = h.clone(); matches_info.num_inliers = 0; for (size_t i = 0; i < matches_info.inliers_mask.size(); ++i) if (matches_info.inliers_mask[i]) matches_info.num_inliers++; //info.confidence = 2; matches_info.confidence = matches_info.num_inliers / (8 + 0.3 * matches_info.matches.size()); // Set zero confidence to remove matches between too close images, as they don't provide // additional information anyway. The threshold was set experimentally. matches_info.confidence = matches_info.confidence > 3. ? 0. : matches_info.confidence; //// Construct point-point correspondences for inliers only src_points.create(1, matches_info.num_inliers, CV_32FC2); dst_points.create(1, matches_info.num_inliers, CV_32FC2); int inlier_idx = 0; for (size_t n = 0; n < matches_info.matches.size(); ++n) { if (!matches_info.inliers_mask[n]) continue; const DMatch& m = matches_info.matches[n]; Point2f p = features[i].keypoints[m.queryIdx].pt; p.x -= features[i].img_size.width * 0.5f; p.y -= features[i].img_size.height * 0.5f; src_points.at<Point2f>(0, inlier_idx) = p; p = features[j].keypoints[m.trainIdx].pt; p.x -= features[j].img_size.width * 0.5f; p.y -= features[j].img_size.height * 0.5f; dst_points.at<Point2f>(0, inlier_idx) = p; inlier_idx++; } // Rerun motion estimation on inliers only matches_info.H = findHomography(src_points, dst_points, CV_RANSAC); } else { matches_info.src_img_idx = -1; matches_info.dst_img_idx = -1; } pairwise_matches.push_back(matches_info);//发现程序崩在哪一行了 } } cout << pairwise_matches.size() << endl; /*Mat img1 = imread(img_names[0], 1); Mat img2 = imread(img_names[1], 1); Mat out1, out2, out; drawKeypoints(img1, features[0].keypoints, out1); drawKeypoints(img1, features[0].keypoints, out2); drawMatches(img1, features[0].keypoints, img2, features[1].keypoints, pairwise_matches[0].matches, out); cv::namedWindow("out1", 0); cv::imshow("out1", out); cv::namedWindow("out2", 0); cv::imshow("out2", out); cv::namedWindow("out", 0); cv::imshow("out", out); cv::waitKey();*/ //for(int i=0; i<nu) HomographyBasedEstimator estimator; vector<CameraParams> cameras; estimator(features, pairwise_matches, cameras); for (size_t i = 0; i < cameras.size(); ++i) { Mat R; cameras[i].R.convertTo(R, CV_32F); cameras[i].R = R; //cout << "Initial intrinsics #" << indices[i] + 1 << ":\n" << cameras[i].K() << endl; } Mat K1(Matx33d( 1.2755404529239545e+03, 0., 1.3099971348805052e+03, 0., 1.2737998060528048e+03, 8.0764915313791903e+02, 0., 0., 1. )); Mat K2(Matx33d( 1.2832823446505638e+03, 0., 1.2250954954648896e+03, 0., 1.2831721912770793e+03, 7.1743301498758751e+02, 0., 0., 1. )); Mat K3(Matx33d( 1.2840711959594287e+03, 0., 1.2473666273838244e+03, 0., 1.2840499404560594e+03, 7.9051574509733359e+02, 0., 0., 1.)); Mat K4(Matx33d( 1.2865853945042952e+03, 0., 1.1876049192856492e+03, 0., 1.2869927339670007e+03, 6.2306976561458930e+02, 0., 0., 1. )); Mat K[4]; K[0] = K1.clone(); K[1] = K2.clone(); K[2] = K3.clone(); K[3] = K4.clone(); for (size_t i = 0; i < cameras.size(); ++i) { K[i].convertTo(K[i], CV_32F); } for (size_t i = 0; i < cameras.size(); ++i) { Mat R; cameras[i].R.convertTo(R, CV_32F); cameras[i].R = R; cameras[i].focal = 0.5*(K[i].at<float>(0, 0)+ K[i].at<float>(1, 1)); // Focal length cameras[i].ppx = K[i].at<float>(0,2); // Principal point X cameras[i].ppy = K[i].at<float>(1,2); ; // Principal point Y cout << cameras[i].K() << endl; //cout << "Initial intrinsics #" << indices[i] + 1 << ":\n" << cameras[i].K() << endl; } Ptr<detail::BundleAdjusterBase> adjuster; if (ba_cost_func == "reproj") adjuster = new detail::BundleAdjusterReproj(); else if (ba_cost_func == "ray") adjuster = new detail::BundleAdjusterRay(); else { cout << "Unknown bundle adjustment cost function: '" << ba_cost_func << "'.\n"; return -1; } adjuster->setConfThresh(conf_thresh); Mat_<uchar> refine_mask = Mat::zeros(3, 3, CV_8U); if (ba_refine_mask[0] == 'x') refine_mask(0, 0) = 1; if (ba_refine_mask[1] == 'x') refine_mask(0, 1) = 1; if (ba_refine_mask[2] == 'x') refine_mask(0, 2) = 1; if (ba_refine_mask[3] == 'x') refine_mask(1, 1) = 1; if (ba_refine_mask[4] == 'x') refine_mask(1, 2) = 1; adjuster->setRefinementMask(refine_mask); for (int i = 0; i < features.size(); i++) { features[i].descriptors = Mat(); } (*adjuster)(features, pairwise_matches, cameras); cout << "camera number: " << cameras.size() << endl; cv::FileStorage fs(xml_name, cv::FileStorage::WRITE); int num = cameras.size(); fs << "CameraNumber" << num; //char file_name[256]; for (int i = 0; i<cameras.size(); i++) { sprintf(file_name, "Focal_Camera%d", i); fs << file_name << cameras[i].focal; sprintf(file_name, "ppx_Camera%d", i); fs << file_name << cameras[i].ppx; sprintf(file_name, "ppy_Camera%d", i); fs << file_name << cameras[i].ppy; sprintf(file_name, "K_Camera%d", i); fs << file_name << cameras[i].K(); sprintf(file_name, "R_Camera%d", i); fs << file_name << cameras[i].R; } //fs << "indices" << indices; fs.release(); return 0; } ![图片说明](https://img-ask.csdn.net/upload/201904/12/1555002609_315025.png) ![图片说明](https://img-ask.csdn.net/upload/201904/12/1555002619_770672.png)
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载 点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Elastic:菜鸟上手指南
您们好,我是Elastic的刘晓国。如果大家想开始学习Elastic的话,那么这里将是你理想的学习园地。在我的博客几乎涵盖了你想学习的许多方面。在这里,我来讲述一下作为一个菜鸟该如何阅读我的这些博客文章。 我们可以按照如下的步骤来学习: 1)Elasticsearch简介:对Elasticsearch做了一个简单的介绍 2)Elasticsearch中的一些重要概念:cluster, n...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
Java知识体系最强总结(2020版)
更新于2019-12-15 10:38:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 文章目录...
计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
介绍几个可以下载编程电子书籍的网站。 1.Github Github上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的: free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。 Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web框架实...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
一文带你看清 HTTP 所有概念
上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性。我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的概念,但没有深入底层) HTTP 标头 先来回顾一下 HTTP1.1 标头都有哪几种 HTTP 1.1 的标头主要分为四种,通用标头、实体标头、请求标头、响应标头,现在我们来对这几种标头进行介绍 通用...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
【综合篇】浏览器的工作原理:浏览器幕后揭秘
web(给达达前端加星标,提升前端技能)了解浏览器是如何工作的,能够让你站在更高的角度去理解前端浏览器的发展历程的三大路线,第一是应用程序web化,第二是web应用移动化,第三是web操...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
死磕Lambda表达式(二):Lambda的使用
在哪使用Lambda表达式?怎么样正确的使用Lambda表达式?
史上最牛逼的 Eclipse 快捷键,提高开发效率!
如果你在使用IDEA,请参考博主另外的一篇idea快捷键的博客。
在三线城市工作爽吗?
我是一名程序员,从正值青春年华的 24 岁回到三线城市洛阳工作,至今已经 6 年有余。一不小心又暴露了自己的实际年龄,但老读者都知道,我驻颜有术,上次去看房子,业务员肯定地说:“小哥肯定比我小,我今年还不到 24。”我只好强颜欢笑:“你说得对。” 从我拥有记忆到现在进入而立之年,我觉得,我做过最明智的选择有下面三个: 1)高中三年,和一位女同学保持着算不上朋友的冷淡关系;大学半年,把这位女同学追到...
CSS操作之你不得不知的一些小技巧(一)ヾ(Ő∀Ő๑)ノ太棒了!!
目录 CSS单行/多行文本,超出隐藏并显示省略号 1. CSS单行/多行文本,超出隐藏并显示省略号 方法一:使用CSS属性 单行文本溢出显示省略号 width: 100px; overflow: hidden; text-overflow:ellipsis; //文本溢出显示省略号 white-space: nowrap; //文本不会换...
强烈推荐 10 款珍藏的 Chrome 浏览器插件
Firebug 的年代,我是火狐(Mozilla Firefox)浏览器的死忠;但后来不知道为什么,该插件停止了开发,导致我不得不寻求一个新的网页开发工具。那段时间,不少人开始推荐 Chrome 浏览器,我想那就试试吧,期初我觉得用起来很别扭,毕竟我不是一个“喜新厌旧”的人。但用的次数越来越多,也就习惯了。 Chrome 浏览器有一个好处,就是插件极其丰富,只有你想不到的,没有你找不到的,这恐怕是...
我以为我对数据库索引十分了解,直到我遇到了阿里面试官。
索引的数据结构分析,数据库面试到索引最常见的问题分析,我总结了一下。
Java程序员都需要懂的「反射」
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 今天来简单写一下Java的反射。本来没打算写反射这个知识点的,只是不少的读者都问过我:“你的知识点好像缺了反射阿。能不能补一下?” 这周末也有点空了,所以来写写我对反射的简单理解。这篇是入门文章,没有高深的知识点,希望能对新人有帮助。如果...
史上最牛逼的 VSCode 插件,提高开发效率!
这篇文章收集了一些常用的vscode插件,提高开发效率。
Java第二周学习
Java第二周学习 1. 数组 1.1 定义数组格式 数据类型[] 数组名 = new 数据类型[容量]; int[] arr = new int[10]; 赋值左侧 数据类型: 告知编译器,当前数组中能够保存的数据类型到底是什么?并且在确定数据类型之后,整个数组中保存的数据类型无法修改!!! []: 告知编译器这里定义的是一个数组类型数据。 明确告知编译器,数组名是一个【引用数据类型...
有没有简单一点的 Python 小例子或小项目?
分享一波Github上适合新手入门、又十分有趣的Python项目~ 1. 人脸识别 star:30.5k 最简洁的人脸识别库。可以使用Python和命令行工具提取、识别、操作人脸。其人脸识别是基于业内领先的C++开源库dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,准确率高达99.38%。 而且有中文版README哟~ 2. faceai sta...
看完这篇JVM,阿里面试官都不怕!
前言 只有光头才能变强 本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 学习JVM的目的也很简单: 能够知道JVM是什么,为我们干了什么,具体是怎么干的。能够理解到一些初学时不懂的东西 在面试的时候有谈资 能装逼 (图片来源:https://zhuanlan.zhihu.com/p/25511795,侵删) 声...
隆重向你推荐这 8 个开源 Java 类库
昨天在青铜时代群里看到读者朋友们在讨论 Java 最常用的工具类,我觉得大家推荐的确实都挺常见的,我自己用的频率也蛮高的。恰好我在 programcreek 上看到过一篇类似的文章,就想着梳理一下分享给大家。 在 Java 中,工具类通常用来定义一组执行通用操作的方法。本篇文章将会向大家展示 8 个工具类以及它们最常用的方法,类的排名和方法的排名均来自可靠的数据,从 GitHub 上最受欢迎的 ...
Java基础知识面试题(2020最新版)
文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...
Spring面试题(2020最新版)
文章目录Spring概述(10)什么是spring?Spring框架的设计目标,设计理念,和核心是什么Spring的优缺点是什么?Spring有哪些应用场景Spring由哪些模块组成?Spring 框架中都用到了哪些设计模式?详细讲解一下核心容器(spring context应用上下文) 模块Spring框架中有哪些不同类型的事件Spring 应用程序有哪些不同组件?使用 Spring 有哪些方式...
用树莓派做一个人脸识别开锁应用
作者:eckygao,腾讯 CSIG 云产品部1.案例概述1.1 背景实现一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。总的来说,需求描述简单,但由于约束比较多,在架构与选型上...
C语言写个贪吃蛇游戏
贪吃蛇是个非常经典的游戏,用C语言来实现也是一个好玩的事情。这个游戏我写完后放在知乎,竟然点赞的人数超级多。我觉得大家喜欢,一个方面是因为写得简单,大家都能看得懂,一个可扩展性还是非常强...
出不了门的日子,我选择在 GitHub 上快乐的打游戏
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个在家憋到长蘑菇的蒟蒻… 2020 年的开年因为一些大家都知道的原因,有些不顺,但还是要捏捏自己的脸蛋儿,微笑的面对,毕竟日子还是要过下去… 要点脸皮,不能出门,假期又一延再延,作为一个从小熟读结发悬梁铁锥刺骨囊萤照读牛角挂书等典故的社会主义好青年,我决定趁这段时间好好充实自己,争取早日上...
7年加工作经验的程序员,从大厂跳槽出来,遭遇了什么?
引言      很久没写文章了,只是隔一两个月更新篇小说,回想起来,LZ至今工作也8年了,回想起来,一时间难免感慨,时间真的过的太快了。   当初在北京的4年多,是LZ工作中最精彩的一段经历,这也是为何LZ的小说以LZ在北京打拼时的真实经历为背景,因为那是一段难忘而又精彩的时光。   16年偶得一个大厂的offer,因此LZ就毅然决然的来到了杭州,来到杭州以后,LZ的工作平淡了许多,或许和...
为什么大多数人永远不会真正成功?
前几天看到一个叫做《为什么大多数人永远不会真正成功?》的视频,我本来以为是鸡汤,耐着性子看了一个开头,立刻被吸引了,居然一口气看完了。看完了以后,我对照着自己这10多年的经历反思了一下...
一篇文章带你入门爬虫丶刷网课丶刷文章阅读量丶刷刷刷。
走过路过不要错过,学不会没关系,长点见识也是可以的啦。 简介 博主于17年开始自学的python, 期间做过各个领域的python开发,包括爬虫, web, 硬件, 桌面应用, AI, 数据分析。 可能有人会问python能做硬件开发?可自行搜索pyboard丶树莓派丶MicroPython, 描述python最有精髓的一句话: python 除了不能生孩子, 啥都能干。 通过该篇文章,读者可以...
Python3怎么处理Excel中的数据(xlrd、xlwt的使用方法)
最近在做毕设,需要把Excel中的数据进行处理,但是。。有346469条数据,不能每一条都自己进行运算并且将它进行归一化运算
python --图像处理基础
一、PIL-Python图像库 二、 三、
疫情期间,天天对着你“开枪”的额温枪,你知道它的工作原理吗?
冠状病毒疫情期间,大家都知道口罩脱销了,消毒酒精脱销了,其实医用的额温枪也脱销了,一枪难求,因为其快速测温(1秒测温),无接触测温的特点,在很多地方被广泛使用,额温枪成了名副其实的防疫物质,此篇博客讲述额温枪的工作原理。
快速傅里叶变换(研二的我终于弄懂了)
这是一篇由快速傅里叶引起的知识惨案,竟然耗费了我好几天时间;不过一想起那只蝙蝠,我就觉得,会耗你就多耗点
相关热词 c#怎么获得线程名 c# usb 采集器 c# csv 读取 c# sort() c# 关闭io流 c# 响应函数 插入 c#面对对象的三大特性 c# 打印 等比缩放 c#弹出右键菜单 c#1如何搞成01
立即提问