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方法 ...
随机推荐
- BZOJ 2597: [Wc2007]剪刀石头布(费用流)
传送门 解题思路 考虑全集-不能构成三元环的个数.如果三个点不能构成三元环,一定有一个点的入度为\(2\),继续扩展,如果一个点的度数为\(3\),则会失去3个三元环.对于一个点来说,它所产生的不能构 ...
- Dubbo入门到精通学习笔记(七):基于Dubbo的分布式系统架构介绍(以第三方支付系统架构为例)、消息中间件的作用介绍
文章目录 架构简单介绍 消息中间件在分布式系统中的作用介绍 消息中间件的定义 消息中间件的作用 应用场景 JMS(Java Message Service) JMS消息模型 实现了JMS规范的消息中间 ...
- Dubbo入门到精通学习笔记(六):持续集成管理平台之Hudson 持续集成服务器的安装配置与使用
文章目录 安装Hudson 使用Hudson tips:自动化部署 附录:两个脚本 安装Hudson IP:192.168.4.221 8G 内存(Hudson 多个工程在同时构建的情况下比较耗内存) ...
- JMeter AI图片识别接口并发量测试
由于临时接到一个性能测试任务,测试8个独立接口在实验室环境的TPS.响应时间以及服务器性能监控如CPU.内存.IO等,没有明确具体的响应时间与并发数,需求较模糊. 1.软件.硬件环境信息:JMeter ...
- 深入理解JAVA虚拟机原理之垃圾回收器机制(一)
更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 对于程序计数器.虚拟机栈.本地方法栈这三个部分而言,其生命周期与相关线程有关,随 ...
- 商城sku的选择功能--客户端
前段时间,刚好做到了有关sku这个功能.客户端的sku,和后台管理系统的sku.当初查了大量资料,遂做个记录,以免忘记. 这篇先写客户端的sku功能把,类似于去淘宝京东等购物,就会有个规格让你选择.如 ...
- json传参报错
restful接口报错: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('e' (code 101)): w ...
- 22-7map
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- css translate/rotate 空间坐标轴
参考:https://www.cnblogs.com/zhangnan35/p/10709876.html https://www.cnblogs.com/zyrblog/p/11142624.htm ...
- C#中Json和类的相互转化
//在NuGet里下载安装 Newtonsoft.Json,再引用. using Newtonsoft.Json; //写一个用户类 public class UserDataInfo { publi ...