C++
p_m_notes
这个作者很懒,什么都没留下…
展开
-
使用typedef简化函数指针的声明及定义
声明函数指针类型:void (*p)(int &,int &);//声明的p为一个函数指针,它所指向的函数带有2个参数并返回一个void值声明函数:void print(void(*p)(int &x,int &y),int &,int &);函数定义:void print(void(*p)(int &x,int &y),int &x,int &y){ }该函数有3个参数原创 2012-11-28 16:22:09 · 880 阅读 · 0 评论 -
编写C++程序来创建有 10 个元素的 vector 对象。用迭代器把每个元素值改为当前值的 2 倍
#include #include #includeusing namespace std;int main(){ vectorivec(10,1);//定义一个int类型的容器ivec int ival; cout<<"请输入10个整型数字!"<<endl; for(vector::iterator iter = ivec.begin();iter<ivec.end();++i原创 2012-12-04 22:55:56 · 3259 阅读 · 0 评论 -
vector<string>::size_type与string::size_type
#include #include #include using namespace std;int main(){ vector svec; string str; cout << "Enter text:" << endl; while (cin>>str) svec.push_back(str); if (svec.size()原创 2012-12-04 16:32:20 · 3233 阅读 · 1 评论 -
读一组整数到 vector 对象,计算并输出每对相邻元素的和。如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。
使用迭代器实现:读一组整数到 vector 对象,计算并输出每对相邻元素的和。如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。答案是C++ Primer习题集中的,本人只是注释,以便能够容易理解#include #include using namespace std;int main(){ vectorivec;//定义一个int类型的容器ivec原创 2012-12-04 22:36:00 · 3414 阅读 · 0 评论 -
bitset
一、初始化 bitset 对象的方法 bitsetb; b 有 n 位,每位都 0 bitset b(u); b 是 unsigned long 型 u 的一个副本 bitset b(s); b 是 string 对象 s 中含有的位串的副本 bitset b(s, pos, n); b 是 s 中从位置 pos 开始原创 2012-12-06 00:02:17 · 537 阅读 · 0 评论 -
进制之间的转换
一: 十进制数转换成二进制数。随便拿出一个十进制数“39”,(假如你今天买书用了39元)先来把这个39转换成2进制数。 商 余数 步数39/2= 19 1转载 2012-12-06 00:35:51 · 1346 阅读 · 0 评论 -
与数组联合使用的指针---迭代器
C++ 允许使用指针遍历数组。和其他内置类型一样,数组也没有成员函数。因此,数组不提供 begin 和 end 操作,程序员只能自己给指针定位,使之分别标志数组的起始位置和超出末端位置。可在初始化中实现这两个指针的定位:初始化指针 pbegin 指向 int_arr 数组的第一个元素,而指针 pend 则指向该数组的超出末端的位置,这样的方式可以防止指针越界。指针 pend 是标志原创 2012-12-09 19:28:31 · 1266 阅读 · 0 评论 -
数组与容器
通过下面的一道题,来分析数组与容器的一些不同之处题:编写必要的代码将一个数组赋给另一个数组,然后把这段代码改用 vector 实现。考虑如何将一个 vector 赋给另一个 vector。解答:一、数组#include using namespace std;int main(){ const size_t array_size = 10; int a[]={0,1,原创 2012-12-09 13:52:45 · 2488 阅读 · 0 评论 -
使用迭代器寻找和删除 string 对象中所有的大写字符。
C++ Primer 习题9.35给出的答案如下:#include#include#includeusing namespace std;int main(){string str = "This IS A Example"; for(string::iterator iter = str.begin(); iter != str.end();++iter){ if(i原创 2013-02-04 13:32:45 · 4899 阅读 · 1 评论 -
vector<char> 容器初始化 string 对象
vectorcvec(10,'a');string str(cvec.begin(),cvec.end());原创 2013-02-04 13:40:28 · 2555 阅读 · 0 评论 -
vector对象的定义和初始化以及vector迭代器iterator
vector对象的定义和初始化vector类定义了好几种构造函数,用来定义和初始化vector对象。vectorT> v1;vector保存类型为T的对象。默认构造函数v1为空。vectorT>v2(v1);v2是v1的一个副本。vectorT>v3(n,i);v3包含n个值为i的元素。原创 2012-12-04 17:09:59 · 5245 阅读 · 1 评论 -
何时使用 const 迭代器的?又在何时使用 const_iterator?解释两者的区别。
const迭代器是迭代器常量,该迭代器本身的值不能修改,即该迭代器在定义时需要初始化,而且初始化后,不能再指向其他元素。若需要指向固定元素的迭代器,则可以使用const迭代器。const_iterator是一种迭代器类型,对这种类型的迭代器解引用会得到一个指向const对象的引用,即通过这种迭代器访问到的对象是常量。该对象不能修改,因此,const_iterator类型只能用于读取容器的元原创 2012-12-04 23:53:36 · 871 阅读 · 0 评论 -
vector的下标操作
vecto的下标操作不能添加元素#include#include#includeusing namespace std;int main(){ vector ivec; for (vector::size_type ix = 0; ix != 10; ++ix) ivec[ix] = ix; // disaster: ivec has no elements f原创 2012-12-04 00:37:26 · 5663 阅读 · 1 评论 -
类的函数指针——类的成员函数的指针
#includeusing namespace std;class Node{public: Node(){}; void print() { cout<<"你好!"<<endl; }};typedef void(Node::*A)();//类成员函数指针类型int main(){ Node *n=0;//定义一个类指针,并赋值为0 A p=&Node::prin原创 2012-11-28 17:56:46 · 356 阅读 · 0 评论 -
成员函数指针数组
#includeusing namespace std;class Node{public: Node(){}; void print() { cout<<"你好!"<<endl; } void print1() { cout<<"我好!"<<endl; } void print2() { cout<<"他好!"<<endl; }};typedef v原创 2012-11-28 18:13:07 · 1396 阅读 · 0 评论 -
字符串有关的一些常用函数
一、常用函数介绍: C语言-----------------------------strcmp:比较2个字符串是否相等 C语言-----------------------------strcat:合并字符串 C语言-----------------------------strcpy:将A字符串复制给B字符串 C++的string类中的函原创 2012-11-29 00:14:43 · 2332 阅读 · 0 评论 -
重载自家运算符的执行次序
#include#includeusing namespace std;class A{public: A(int x){rx=x;} int operator++(){cout<<"++i 先++再返回++后的值\n";rx++;return rx;} int operator++(int){cout<<"i++ 先取值再++,返回先取的值\n";int i=rx;rx++;原创 2012-11-29 15:33:41 · 453 阅读 · 0 评论 -
strlen与sizeof的区别
char man[]={"I love c++"};srtlen(man)--------------》10 ‘\0’前面的字符串长度sizeof(man)--------------》11 数组的长度原创 2012-11-28 21:58:11 · 461 阅读 · 0 评论 -
C++中const用法总结
1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const int nValue;转载 2012-11-30 23:35:12 · 301 阅读 · 0 评论 -
C++类的“包含”机制
//何为“包含”,其实说白了就是一个类可以包含另一个类的对象,即如下程序所示:class A{ //... }; class B{ //... A a; A b;};在上面这个程序中,我们定义了类A和类B。其中类B里面我们定义了类A的两个对象a和b。这样的情况就叫类B转载 2012-12-01 01:08:02 · 537 阅读 · 0 评论 -
C++之“友元类”学习笔记
=======================什么是友元类======================= 当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。=======================友元类能做什么======================= 友元类可以通过自己的方法来访问把它当转载 2012-12-01 01:15:41 · 469 阅读 · 0 评论 -
#define #ifndef #endif
#ifndef SALESITEM_H#define SALESITEM_H// Definition of Sales_itemclass and related functions goes here#endif测试 SALESITEM_H 预处理器变量是否未定义。如果 SALESITEM_H 未定义,那么#ifndef 测试成功,跟在#ifndef 后面的所有行都被执行,直到原创 2012-12-02 22:53:46 · 555 阅读 · 0 评论