1、cudaHOG代码(删减没有必要的目录)

cudaHOGDetect需要boost库:boost_date_time-vc100-mt-1_40.lib

  • VC++目录->附加库目录D:\boost\boost_1_40_0\stage\lib
  • C\C++目录->常规->D:\boost\boost_1_40_0\include\boost-1_40\

2、STL基本

  • 包含一些列排序搜索算法
  • 调试安全、跨平台
  • 模板:类的宏,也甜饼切割机(cookie cutter),泛型(generic).
  • 类模板:泛型类。函数模板:泛型函数
  • STL标准模板库:一些聪明人写的一系列模板。包括链表,堆栈,队列,列表和排序查找等常用的算法
  • 容器:可容纳一些数据的模板类(分为顺序和关联)。STL中有vector,set,map,multiple,deque等容器
  • 向量(vector):基本数组模板,这是一个容器
  • 游标(Iterator):是一个指针,指向STL容器中的元素,也可以指向其他元素

3、vector向量例子

以下代码户主要是利用游标(iterator,类似于指针)和数组的形式去改变向量中元素的值

#include<iostream>
#include<vector>
using namespace std; void print(vector<int>); int main()
{
vector<int > vec;
vec.push_back(34);
vec.push_back(23);
print(vec);
vector<int>::iterator p;
p=vec.begin();
*p=68;
*(p+1)=69;
//*(p+2)=70;
print(vec);
vec.push_back(101);
vec.push_back(102);
int i=0;
while(i<vec.size())
cout<<vec[i++]<<" ";
cout<<endl;
vec[0]=1000;
vec[1]=1001;
vec[2]=1002;
//vec[3]=1002;
i=0;
while(i<vec.size())
cout<<vec[i++]<<" ";
print(vec);
return 0;
} void print(vector<int> v)
{
cout<<"\n vector size is: "<<v.size()<<endl;
vector<int>::iterator p =v.begin(); }

 

以下代码主要是利用vector求和

  • vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!
  • vector<int>::iterator p2=v1[0];这两句都是错的,这就是与指针的区别http://www.cnblogs.com/qlee/archive/2011/05/16/2048026.html

    vector<int>::iterator p2=&(v1[0]);这两句都是错的,这就是与指针的区别

#include<iostream>
#include<vector>
using namespace std;
int sum(vector<int> vec)
{
int result =0;
vector<int>::iterator p=vec.begin();
while(p!=vec.end())
result+=*p++;
return result;
} int main()
{
vector<int> v1(100); //定义一个包含一百个元素的向量,自动初始化为0
cout<<v1.size()<<endl; //100
cout<<sum(v1)<<endl; //0
v1.push_back (23);
cout<<v1.size()<<endl; //101
cout<<sum(v1)<<endl; //23
v1.resize(1000); //v1.reserve(1000);
v1[900]=900;
cout<<v1[900]<<endl;//900
cout<<v1.front()<<endl;//0
cout<<v1.back()<<endl;//23
v1.pop_back();
cout<<v1.back()<<endl;//0
//vector<int>::iterator p2=v1[0];这两句都是错的
//vector<int>::iterator p2=&(v1[0]);这两句都是错的
return 0; }

以下代码是浅拷贝出错,导致两次析构同一块内存问题:深拷贝会开辟新的空间,浅拷贝不会

#include<iostream>
#include<cstdlib>//cstdlib是C++里面的一个常用函数库, 等价于C中的<stdlib.h>
#include<vector>
using namespace std;
class CDemo
{
public:
CDemo():str(NULL){};
~CDemo()
{
if(str) //delete[] str;
{
static int i=0;
cout<<"&CDemo"<<i++<<"="<<(int *)this<<", str"<<(int *)str<<endl;
delete[] str;
}
}
char *str;
}; int main(int argc, char ** argv)
{
CDemo dl;
dl.str=new char[32];
strcpy(dl.str,"trend micro"); vector<CDemo> *al=new vector<CDemo>();
al->push_back(dl);
delete al;//第一次释放
return EXIT_SUCCESS;//退出时第二次释放
}

解决方法是:在CDemo类中添加一个深拷贝构造函数

CDemo(const CDemo &cd)
{
this->str = new char[strlen(cd.str)+1];
strcpy(str,cd,str);
}

20140401 cudaHOG代码的更多相关文章

  1. 20140331 HOG代码调试 Boost库安装

    1.CUDAHOG代码调试 错误1: 错误提示:(main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall cudaHOG::cudaH ...

  2. 使用ReSharper打造团队代码

    当前标签: 漂亮代码   请看高质量的代码——更新 Leo C.W 2014-04-01 19:16 阅读:544 评论:5   我们的终极编码规范 Leo C.W 2014-03-31 22:34 ...

  3. JS日期级联组件代码分析及demo

    最近研究下JS日期级联效果 感觉还不错,然后看了下kissy也正好有这么一个组件,也看了下源码,写的还不错,通过google最早是在2011年 淘宝的虎牙(花名)用原审JS写了一个(貌似据说是从YUI ...

  4. 日期格式代码出现两次的错误 ORA-01810

    错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...

  5. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  6. iOS代码规范(OC和Swift)

    下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...

  7. Jquery的点击事件,三句代码完成全选事件

    先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  8. redux-amrc:用更少的代码发起异步 action

    很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...

  9. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

随机推荐

  1. Minimum Snap轨迹规划详解(3)闭式求解

    如果QP问题只有等式约束没有不等式约束,那么是可以闭式求解(close form)的.闭式求解效率要快很多,而且只需要用到矩阵运算,不需要QPsolver. 这里介绍Nicholas Roy文章中闭式 ...

  2. windows系统使用

    1.访问局域网共享的文件,用 \\ip号 2.电脑的硬件名称(设备管理器中)是可以用软件修改的. 3.电脑中每一个连接网络的设备都有一个网卡地址(MAC地址),如无线网卡地址.有线网卡地址. 4.wi ...

  3. Jquery轻量级插件--操作URL

    调用: > "?action=view&section=info&id=123&debug&testy[]=true&testy[]=false ...

  4. hexo的next主题博客中加入分类页面的js,实现多级目录,并且能够点击展开,隐藏下级目录~(不知道算不算深度优化~~~)

    个人博客:https://mmmmmm.me 源码:https://github.com/dataiyangu/dataiyangu.github.io 多级标题 在自己的xxxx.md文件中做如下修 ...

  5. tensorflow 训练最后预测结果为一个定值,可能的原因

    训练一个分类网络,没想到预测结果为一个定值. 找了很久发现,是因为tensor的维度的原因.  注意:我说的是我的label数据的维度. 我的输入是: y_= tf.placeholder(tf.in ...

  6. 常用内置模块(四)——subprocess、re

    常用模块(四) 一.subprocess模块 1.subprocess为子流程模块,用于执行系统命令,该模块在Python全栈开发中不常用 2.常用方法 run 返回一个表示执行结果的对象 call ...

  7. nginx配置跨域

    location / { if ($request_method = 'OPTIONS') {add_header 'Access-Control-Allow-Origin' '*' always;a ...

  8. 通过java api 读取sql 中数据(查询)

    配置文件:dbconfig.properties 里面的数据 jdbc.url.jwhat=jdbc\:mysql\://ip\:3306/laibadev?useUnicode\=true& ...

  9. 欧拉筛 线性筛 素数+莫比乌斯的mu[]

    https://blog.csdn.net/qq_39763472/article/details/82428602 模板来自https://blog.csdn.net/Avalon_cc/artic ...

  10. JQuery on绑定click无效的的bug解决办法?

    如果你在移动端使用zepto.js, touch 来代替click事件,那就没有上述标题的问题了.如果你仍然使用了click,在点击事件中苹果机就可能出现无效的结果. 第一种方法: 解决的方法很巧妙, ...