34-数组操作符[]的重载
来源:互联网 发布:ie主页修复软件 编辑:程序博客网 时间:2024/06/05 18:03
1、
可以
#include <iostream>#include <string>using namespace std;int main(){ string s = "a1b2c3d4e"; int n = 0; for(int i = 0; i<s.length(); i++) { if( isdigit(s[i]) ) { n++; } } cout << n << endl; return 0;}
2、
3、
#include <iostream>#include <string>using namespace std;int main(){ int a[5] = {0}; for(int i=0; i<5; i++) { a[i] = i; } for(int i=0; i<5; i++) { cout << *(a + i) << endl; // cout << a[i] << endl; } cout << endl; for(int i=0; i<5; i++) { i[a] = i + 10; // a[i] = i + 10; } for(int i=0; i<5; i++) { cout << *(i + a) << endl; // cout << a[i] << endl; } return 0;}
4、
#include <iostream>#include <string>using namespace std;class Test{ int a[5];public: int& operator [] (int i) { return a[i]; } int& operator [] (const string& s) { if( s == "1st" ) { return a[0]; } else if( s == "2nd" ) { return a[1]; } else if( s == "3rd" ) { return a[2]; } else if( s == "4th" ) { return a[3]; } else if( s == "5th" ) { return a[4]; } return a[0]; } int length() { return 5; }};int main(){ Test t; for(int i=0; i<t.length(); i++) { t[i] = i; } for(int i=0; i<t.length(); i++) { cout << t[i] << endl; } cout << t["5th"] << endl; cout << t["4th"] << endl; cout << t["3rd"] << endl; cout << t["2nd"] << endl; cout << t["1st"] << endl; return 0;}
5、
6、数组类
#ifndef _INTARRAY_H_#define _INTARRAY_H_class IntArray{private: int m_length; int* m_pointer; IntArray(int len); IntArray(const IntArray& obj); bool construct();public: static IntArray* NewInstance(int length); int length(); bool get(int index, int& value); bool set(int index ,int value); int& operator [] (int index); IntArray& self(); ~IntArray();};#endif
#include "IntArray.h"IntArray::IntArray(int len){ m_length = len;}bool IntArray::construct(){ bool ret = true; m_pointer = new int[m_length]; if( m_pointer ) { for(int i=0; i<m_length; i++) { m_pointer[i] = 0; } } else { ret = false; } return ret;}IntArray* IntArray::NewInstance(int length) { IntArray* ret = new IntArray(length); if( !(ret && ret->construct()) ) { delete ret; ret = 0; } return ret;}int IntArray::length(){ return m_length;}bool IntArray::get(int index, int& value){ bool ret = (0 <= index) && (index < length()); if( ret ) { value = m_pointer[index]; } return ret;}bool IntArray::set(int index, int value){ bool ret = (0 <= index) && (index < length()); if( ret ) { m_pointer[index] = value; } return ret;}int& IntArray::operator [] (int index){ return m_pointer[index];}IntArray& IntArray::self(){ return *this;}IntArray::~IntArray(){ delete[]m_pointer;}
#include <iostream>#include <string>#include "IntArray.h"using namespace std;int main(){ IntArray* a = IntArray::NewInstance(5); if( a != NULL ) { IntArray& array = a->self(); cout << "array.length() = " << array.length() << endl; array[0] = 1; for(int i=0; i<array.length(); i++) { cout << array[i] << endl; } } delete a; return 0;}
阅读全文
0 0
- 34-数组操作符[]的重载
- 数组的操作符重载
- 数组操作符的重载
- C++重载[]数组操作符
- 操作符的重载以及数组/vector对象的初始化
- 21、不一样的C++系列--数组操作符的重载
- 操作符重载的应用(数组类)
- 操作符的重载
- 操作符的重载
- 操作符的重载
- 操作符的重载
- 操作符的重载
- 操作符的重载
- C++运算符重载(12) - 重载数组索引操作符[]
- 类中友元函数 、重载操作符 和 数组
- 重载数组下表操作符
- 重载数组下标操作符,使用operator
- php中重载数组操作符
- 安好时代:APP上线百天用户量达数十万
- 支付宝微信同台亮相,凯德O2O尝鲜移动支付
- 持续集成在Hexo自动化部署上的实践
- [BZOJ 2761] 不重复数字 STL各种花式过题方法合集
- Java中的泛型方法
- 34-数组操作符[]的重载
- 西门子携手创业孵化器InnoSpace, 打造面向工业4.0的创业加速计划
- 魔幻工厂要给传统制造业一点颜色看看
- 为自家旗舰代言,张江女神评测中兴AXON天机
- 利用个推SDK轻松实现IM通信功能
- 七夕定制中兴AXON天机,为你俘获芳心
- 上海转型大课如约而至,黄埔江畔,等你来战
- 华捷艾米:关于3D体感技术核心环节的③大揭秘
- GfK发布线下手机数据,华为、OPPO领跑中国手机市场