【C++】一文入门C++

如何使用C++构造函数

如何使用C++析构函数

慢慢吞吞的复习完C++基础。


#include<iostream>
#include<string>
#include<vector>
using namespace std;
template<typename T>
//模板
T add(T x, T y) {

	return x + y;
}
//类
class MyStruct
{
public:
	
	//构造函数
	MyStruct(string n, double s) {
		name = n;
		score = s;
	}
	
	void show() {

		cout << name << "  "<<score << endl;
	}//成员函数类内部实现
	void ex_show();
	
private:
	double score;
	string name;
};
void MyStruct::ex_show() {
	//::域名操作符(域:简单理解类MyStruct的域)
	printf("类外部实现成员函数\n");
}

double f(const double& d) {
	//引用传递,比值传递更高效,少了内存

	return 2 * d;
}

int main() {

	int a = 9;
	int& b = a;//引用类型

	int m = 99;
	int* n;
	n = &m;//指针
	string s = "hello";//字符对象

	vector <int> array = { 2,3,4,5 };
/*向量,类似数组
	(数组不可动态添加),可以动态添加
*/
	int* k = new int;
	//堆区,动态分内存类似malloc
	*k = 100;

	double D=78.3;//引用测试

	//模板解决数据类型问题
	printf("%f\n", add(3.2, 4.3));
	printf("%d\n", add(2, 4));


	printf("%d %d\n", a, b);
	printf("hello\n");

	cout << s.size() << endl;

	cout << array.size() << endl;

	printf("%d\n", *n);

	cout << *k << endl;

	delete k;
	//释放内存

	
	MyStruct OBJ("guo", 99.9);
	OBJ.show();
	OBJ.ex_show();
	

	cout << f(D) << endl;
	return 0;
}

//泛型 容器 迭代器

在QT中测试:容器,迭代器 更容易理解使用。

void MainWindow::on_pushButton_clicked(bool checked)
{
    int i=0,j=0;
    QString str;
    if(!checked){
        //容器

        QList<QString> obj;//顺序容器

        QMap<QString,int> map;//关联容器
/*****************************************************/
        //迭代器例子
        QList<QString> list;//容器
        list<<"a"<<"b"<<"c"<<"d";//添加数据
        QListIterator<QString> n (list);//顺序迭代器遍历
        while (n.hasNext()) {
            qDebug()<<n.next();
        }
        qDebug()<<"**********************";
        QMap<QString,QString> Map;
        Map.insert("1","1");
        Map.insert("2","3");
        Map.insert("3","3");
        Map.insert("4","3");
        QMutableMapIterator<QString,QString> m (Map);//关联迭代器遍历

        while (m.hasNext()) {
            if(m.next().key().endsWith("1"))
                m.remove();//key值与指定的value值相同删除

        }
        qDebug()<<Map;
        qDebug()<<"**********************";
/*****************************************************/
        obj.append("hello");
        obj.append("hello");//追加数据
        obj.insert(0,"world");

        map["one"]=1;
        map["two"]=9;

        j=map["two"];
        qDebug()<<j;
        map.insert("88",0);

        qDebug()<<map;
/*****************************************************/
        i=obj.size();
        str=obj.at(0);
        qDebug()<<obj;
        qDebug()<<i;
        qDebug()<<str;
    }
}
 if(!checked){
    QList<QString> list;//顺序容器
    list<<"a"<<"b"<<"c"<<"d";
    QList<QString>::const_iterator i;//STL类型的迭代器
    for (i=list.constBegin();i!=list.constEnd();++i) {

        qDebug()<<*i;
    }
    QMap<int,int> map;//关联容器

    QMap<int,int>::const_iterator j;//STL类型的迭代器
    map.insert(1,3);
    map.insert(2,4);
    map.insert(3,5);//插入数据
    for (j=map.constBegin();j!=map.constEnd();++j) {

        qDebug()<<j.key()<<" "<<j.value();
    }
    }

猜你喜欢

转载自blog.csdn.net/weixin_41865104/article/details/106991949