Essential C++ 3.1 节的代码练习——指针方式
//
// PointerToValue.cpp
// Working
//
// Created by Hawkins, Dakota Y on 6/3/16.
// Copyright 2016 Hawkins, Dakota Y. All rights reserved.
// #include "PointerToValue.hpp"
#include <cstdio>
#include <vector>
#include <iostream> using namespace std; template <typename element>
element *find_value(vector<element> &vec, element value)
{
for (int i = ; i < vec.size(); i++)
{
if (vec[i] == value)
{
return &vec[i];
}
}
return ;
} template <typename T>
T *find_value(T *array, int size, T value)
{
if (! array || size < )
{
return ;
}
for (int i = ; i < size; i++)
{
if (array[i] == value)
{
return &array[i];
}
}
return ;
} template <typename element>
int find_pos(vector<element> &vec, element value)
{
int pos_val;
for (int i = ; i < vec.size(); i++)
{
if (vec[i] == value)
{
pos_val = i;
return pos_val;
}
}
return ;
} int main()
{
int int_array[] = {, , , , };
string str_array[] = {"Hello", ",", "how", "are", "you?"};
float float_array[] = {0.123, 4.5, 10.1, 5.7, }; vector<int> int_vector(int_array, int_array + );
vector<string> str_vector(str_array, str_array + );
vector<float> float_vector(float_array, float_array + ); cout << "pos of 3 = " << find_pos(int_vector,) <<endl; cout << "Pointer of '3' in 'int_vector': " << find_value(int_vector, ) << endl;
//cout <<*(find_value(int_vector, 3))<<endl; //cout the value of 3 cout << "Pointer of 'Hello' in 'str_vector': " << find_value(str_vector, string("Hello")) << endl; float f_test = 11.1;
cout << "Pointer of '11.1' in 'float_vector': " << find_value(float_vector, f_test) << endl; float first_value = float_array[];
cout << "Pointer of 4.5 in 'float_array': " << find_value(&first_value, int(), float(4.5)) << endl;
return ;
}
输出:
Essential C++ 3.1 节的代码练习——指针方式的更多相关文章
- Essential C++ 3.1 节的代码练习——哨兵方式
#include "IncrementArray.hpp" template <typename element> element *find_address(elem ...
- Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递较长的标识信息.例如 ...
- linux内核分析作业4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
系统调用:库函数封装了系统调用,通过库函数和系统调用打交道 用户态:低级别执行状态,代码的掌控范围会受到限制. 内核态:高执行级别,代码可移植性特权指令,访问任意物理地址 为什么划分级别:如果全部特权 ...
- java 22 - 9 多线程之 代码实现的方式2
多线程的代码实现: 方式2:实现Runnable接口 步骤: A:自定义类MyRunnable实现Runnable接口 B:重写run()方法 C:创建MyRunnable类的对象 D:创建Threa ...
- C#不安全代码和指针
从通常情况下来看,为了保持类型安全,默认情况C# 不支持指针算法. 不过,当你需要使用指针的时候,请通过使用 unsafe 关键字,可以定义可使用指针的不安全上下文. 有关指针的更多信息,请参见主题指 ...
- Entity Framework入门教程(18)---EF6中基于代码进行配置方式
EF6中基于代码进行配置方式 我们以前对EF进行配置时是在app.config/web.config下的<entityframework>节点下进行配置的,EF6引进了基于代码的配置方法. ...
- 实验--使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用(杨光)
使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 攥写人:杨光 学号:20135233 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程 ...
- 4.3.6 对象的界定通过编写接口来访问带这类命名结构的表会出问题。如前所述,SQL Server的灵活性不应用作编写错误代码或创建问题对象的借口。 注意在使用Management Studio的脚本工具时,SQL Server会界定所有的对象。这不是因为这么做是必须的,也不是编写代码的最佳方式,而是因为在界定符中封装所有的对象,比编写脚本引擎来查找需要界定的对象更容易。
如前所述,在创建对象时,最好避免使用内嵌的空格或保留字作为对象名,但设计人员可能并没有遵守这个最佳实践原则.例如,我当前使用的数据库中有一个审核表名为Transaction,但是Transaction ...
- IntelliJ IDEA设置代码括号对齐方式
IntelliJ IDEA设置代码括号对齐方式 IntelliJ IDEA默认的对齐方式如下:括号跟函数名在一行 想改为括号独自占一行,如下: 配置方式如下:File->Setting-> ...
随机推荐
- 二维数组的转置(java)
public class ShuZhuDaoZhi { public static void main(String[] args) { int data[][] = new int[][]{{1, ...
- Spring Cloud(2):搭建Eureka
Eureka Server的搭建: 使用IDEA工具 File->New Project->Spring Initializr->next Next Next->Next创建即 ...
- while循环,break和continue,运算符,格式化输出
一丶while循环 while条件: 代码块(循环体) #数数 打印1-100 count = 1 while count <= 100: print(count) count += 1 执行顺 ...
- PL/SQL中模拟EBS上下文
有时,我们需要查询的表或视图,是具有OU屏蔽的,这时我们就需要模拟EBS中的上下文来实现查询数据. BEGIN fnd_global.apps_initialize(user_id =>1,re ...
- fish 常用主题推荐
在安装fish的前提下 omf install zish omf theme zish zish
- LaTeX 符号大全
常用数学符号的 LaTeX 表示方法 2016-10-31 16:22 | 黄荣生 常用数学符号的 LaTeX 表示方法 1.指数和下标可以用^和_后加相应字符来实现.比如: 2.平方根(squa ...
- 大数四则运算java(转)
// 大数的四则运算 #include <iostream> #include <string> #include <algorithm> using namesp ...
- ASP.NET Dev ASPxGridView控件使用 ASP.NET水晶报表打印
1.ASPxGridView控件使用 2.ASP.NET水晶报表客户端打印 3.javascript打印 4.ASPxGridView根据Textbox查询 5. ASPxGridView 列宽 1. ...
- linux 命令——38 cal (转)
cal命令可以用来显示公历(阳历)日历.公历是现在国际通用的历法,又称格列历,通称阳历.“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”. 1.命令格式: cal ...
- 64位系统中为VS2012添加OpenGL工具包
之前一直都是按照网上教程进行的添加,以前使用的系统是32位的,所以一直都没有问题.最近换了64位系统,要使用到OpenGL,于是就又进行了原来的工作,但进行测试时,老是失败: 但是在目录:" ...