码迷,mamicode.com
首页 > 编程语言 > 详细

C++坑点随笔

时间:2019-11-25 11:06:15      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:int   状态   catch   name   cas   tor   erase   double   c++   

防止头文件重复定义

  1. 有两种方法,分别是

    #ifndef xxx_h
    #define xxx_h
    ...
    #endif
    #pragma once

头文件已使用上述方法却仍然multiple define

  1. 注意,头文件只能声明不能定义,否则出错
  2. c++类中私有成员中的静态变量初始化方式
//.h文件
class Test{
 static double A; 
 static double B();
};
//.cpp文件
double Test::A= 2.0; //正确的静态成员初始化

vector

erase操作

  • 原理:删除过程中对于指定iter后面的数据全部向前移动进行覆盖
  • 注意点:删除之后所删除位置的iter可能变为野指针(若iter是最后一个)因此对于这种情况要妥善处理

  • 测试代码

#include <vector>
#include <cstdio>
using namespace std;


int main(){
    vector <int> a;
    a.clear();
    a.push_back(1);
    a.push_back(2);
    a.push_back(3);
    
    for(int i = 0; i < a.size(); i++)
        printf("%d ", a[i]);
        
    vector<int>::iterator itr = a.begin();
    a.erase(itr+1);
    
    for(int i = 0; i < a.size(); i++)
        printf("%d ", a[i]);         
}

Catch2 测试框架中的SECTION

在进行一次大量数据测试时,SECTION进入死循环状态,无法跳出,断点也无法定位问题所在,改变为TEST_CASE直接运行后正常运行,问题未知,猜测与函数中内存限制有关。

C++坑点随笔

标签:int   状态   catch   name   cas   tor   erase   double   c++   

原文地址:https://www.cnblogs.com/Phoenix-blog/p/11926388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!