20140401 cudaHOG代码
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代码的更多相关文章
- 20140331 HOG代码调试 Boost库安装
1.CUDAHOG代码调试 错误1: 错误提示:(main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall cudaHOG::cudaH ...
- 使用ReSharper打造团队代码
当前标签: 漂亮代码 请看高质量的代码——更新 Leo C.W 2014-04-01 19:16 阅读:544 评论:5 我们的终极编码规范 Leo C.W 2014-03-31 22:34 ...
- JS日期级联组件代码分析及demo
最近研究下JS日期级联效果 感觉还不错,然后看了下kissy也正好有这么一个组件,也看了下源码,写的还不错,通过google最早是在2011年 淘宝的虎牙(花名)用原审JS写了一个(貌似据说是从YUI ...
- 日期格式代码出现两次的错误 ORA-01810
错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- redux-amrc:用更少的代码发起异步 action
很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...
- 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)
建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...
随机推荐
- 用 Windows Live Writer 和 SyntaxHighlighter 插件写高亮代码
博客园内置支持SyntaxHighlighter代码着色,代码着色语法:<pre class='brush:编程语言'>代码</pre>. 需要注意的是:如何你使用Syntax ...
- mongodb导入csv
主要介绍使用自带工具mongoimport工具将 CSV 格式数据导入到 MongoDB 的详细过程. 由于官方提供了mongoimport工具,所以实际上导入 CSV 格式数据的过程非常简单,再次体 ...
- systemctl命令配置系统服务
1.systemd的配置文件目录 systemd将daemon执行的脚本视作服务单位(unit),服务依据功能区分时,分为不同的类型(type). 常见的systemd服务类型如下表: 后缀名称 ...
- Dubbo入门到精通学习笔记(十三):ZooKeeper集群的安装、配置、高可用测试、升级、迁移
文章目录 ZooKeeper集群的安装.配置.高可用测试 ZooKeeper 与 Dubbo 服务集群架构图 1. 修改操作系统的/etc/hosts 文件,添加 IP 与主机名映射: 2. 下载或上 ...
- smali与baksmali用法-基于2.2.2版本
下载地址:https://bitbucket.org/JesusFreke/smali/downloads/?tab=downloads 反编译dex java -jar baksmali-2.2.1 ...
- 机器学习技法笔记:Homework #6 AdaBoost&Kernel Ridge Regression相关习题
原文地址:http://www.jianshu.com/p/9bf9e2add795 AdaBoost 问题描述 程序实现 # coding:utf-8 import math import nump ...
- python:Django 简介。
Django是基Python的重要WEB框架. 1.安装Django Web框架 安装 pip 安装 在命令行模式 执行 [pip install django == 2.0]或者 [pip in ...
- Linux SSH证书登陆
创建证书 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 证书导入以后,执行 eval "$(ssh-agen ...
- ASP.Net 第一天笔记 MVC 控制器与视图数据传递注意事项
1.如果方法的参数的名称与表单元素Name属性的值一致的话,会自动填充 2.如果表单元素的Name属性与实体类型中属性一致,那么表单中的数据会自动赋值给实体中的属性 3.控制器中重载的方法 方法前上边 ...
- Vuex 源码解析
先来看一下这张Vuex的数据流程图,熟悉Vuex使用的同学应该已经有所了解. Vuex实现了一个单向数据流,在全局拥有一个State存放数据,所有修改State的操作必须通过Mutation进行,Mu ...