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. 用 Windows Live Writer 和 SyntaxHighlighter 插件写高亮代码

    博客园内置支持SyntaxHighlighter代码着色,代码着色语法:<pre class='brush:编程语言'>代码</pre>. 需要注意的是:如何你使用Syntax ...

  2. mongodb导入csv

    主要介绍使用自带工具mongoimport工具将 CSV 格式数据导入到 MongoDB 的详细过程. 由于官方提供了mongoimport工具,所以实际上导入 CSV 格式数据的过程非常简单,再次体 ...

  3. systemctl命令配置系统服务

    1.systemd的配置文件目录 systemd将daemon执行的脚本视作服务单位(unit),服务依据功能区分时,分为不同的类型(type). 常见的systemd服务类型如下表: 后缀名称    ...

  4. Dubbo入门到精通学习笔记(十三):ZooKeeper集群的安装、配置、高可用测试、升级、迁移

    文章目录 ZooKeeper集群的安装.配置.高可用测试 ZooKeeper 与 Dubbo 服务集群架构图 1. 修改操作系统的/etc/hosts 文件,添加 IP 与主机名映射: 2. 下载或上 ...

  5. smali与baksmali用法-基于2.2.2版本

    下载地址:https://bitbucket.org/JesusFreke/smali/downloads/?tab=downloads 反编译dex java -jar baksmali-2.2.1 ...

  6. 机器学习技法笔记:Homework #6 AdaBoost&Kernel Ridge Regression相关习题

    原文地址:http://www.jianshu.com/p/9bf9e2add795 AdaBoost 问题描述 程序实现 # coding:utf-8 import math import nump ...

  7. python:Django 简介。

    Django是基Python的重要WEB框架. 1.安装Django Web框架 安装  pip 安装 在命令行模式 执行  [pip install django == 2.0]或者 [pip in ...

  8. Linux SSH证书登陆

    创建证书 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 证书导入以后,执行 eval "$(ssh-agen ...

  9. ASP.Net 第一天笔记 MVC 控制器与视图数据传递注意事项

    1.如果方法的参数的名称与表单元素Name属性的值一致的话,会自动填充 2.如果表单元素的Name属性与实体类型中属性一致,那么表单中的数据会自动赋值给实体中的属性 3.控制器中重载的方法 方法前上边 ...

  10. Vuex 源码解析

    先来看一下这张Vuex的数据流程图,熟悉Vuex使用的同学应该已经有所了解. Vuex实现了一个单向数据流,在全局拥有一个State存放数据,所有修改State的操作必须通过Mutation进行,Mu ...