随笔分类 -  c&c++

摘要:glib库单向链表介绍 glib库里实现了一些基本的数据结构,比如单向链表,双向链表、队列、树、hash表和数组。这篇文章里我主要介绍在linux平台下使用glib库中的单向链表进行编程,以后的文章我会陆续介绍双向链表、队列和其它数据结构的用法。 单向链表(即GSList)是glib库里最简单的容具 阅读全文
posted @ 2024-01-22 11:00 opensmarty 阅读(352) 评论(0) 推荐(0)
摘要:在上一篇文章里我介绍了glib库中单向链表的用法,这篇文章介绍glib库双向链表的用法,还是沿用上一篇文章的风格,采用在代码中加入注释来说明代码,最后贴出程序的运行结果,然后加以少量说明。双向链表与单向链表的区别是,从一个节点,不仅能访问到它的下一个节点,还能访问到它的上一个节点,其定义如下: st 阅读全文
posted @ 2024-01-22 10:51 opensmarty 阅读(246) 评论(0) 推荐(0)
摘要:编译:gcc -g -Wall -O0 fuck.c -o fuck `pkg-config --libs --cflags glib-2.0` 1 基本操作这里是向数组添加和删除数据的一些主要方法: #include <glib.h> #include <stdio.h> int main(int 阅读全文
posted @ 2024-01-22 10:46 opensmarty 阅读(127) 评论(0) 推荐(0)
摘要:glib库中的数组GArray类型很像C++标准容器库中的vector容器。要使用glib库中的数组中需要声明一个指向GArray类型的指针。GArray的定义如下: struct GArray { gchar *data; guint len; }; 然后就可以在这个数组前或者数组后添加数据,添加 阅读全文
posted @ 2024-01-22 10:38 opensmarty 阅读(388) 评论(0) 推荐(0)
摘要:队列是一种向最后添加条目,从最前删除条目的数据结构,这种数据结构在处理按顺序到达的数据是很有用。glib库提供的队列GQueue是一个双端队列, 它的实现基础是双向链表,所以它支持在队列的两端进行添加和删除,也支持很多其它的操作,比如在队列中进行插入和删除,但是我不推荐使用这样的功能,因为 当你经常 阅读全文
posted @ 2024-01-22 10:28 opensmarty 阅读(307) 评论(0) 推荐(0)
摘要:hash表是一种提供key-value访问的数据结构,通过指定的key值可以快速的访问到与它相关联的value值。hash表的一种典型用法就是字典,通过单词的首字母能够快速的找到单词。关于hash表的详细介绍请查阅数据结构的相关书籍,我这里只介绍glib库中hash表的基本用法。要使用一个hash表 阅读全文
posted @ 2024-01-22 10:20 opensmarty 阅读(563) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2024-01-09 14:37 opensmarty 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2024-01-09 14:33 opensmarty 阅读(0) 评论(0) 推荐(0)
摘要:一、glibc简介 glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现 主要的如下: (1)string,字符串处理 阅读全文
posted @ 2024-01-09 14:28 opensmarty 阅读(1753) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2023-12-28 10:33 opensmarty 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2023-11-08 15:49 opensmarty 阅读(0) 评论(0) 推荐(0)
摘要:头文件:cstring 或 memory 话说刚开始使用memset的时候一直以为memset是对每一个int赋值的,心里想有了memset还要for循环对数组进行初始化干嘛。但其实memset这个函数的作用是将数字以单个字节逐个拷贝的方式放到指定的内存中去 memset(dp,0,sizeof(d 阅读全文
posted @ 2023-09-21 11:32 opensmarty 阅读(5869) 评论(0) 推荐(2)
摘要:直接上错误代码实例 #include <iostream.h> int main() { print('hello, world\n') return 0; } 编译通不过,直接出错 这是C语言转C++的两条经典错误 C++中是没有iostream.h这个东西的(或者一般不会这么使用),正确用法是: 阅读全文
posted @ 2023-04-24 18:17 opensmarty 阅读(742) 评论(0) 推荐(0)
摘要:在运行指针时终端出现error: ‘::main’ must return ‘int’ void main()错误。源代码如下: #include<stdio.h> void main() { int a,*p,b,c,d,e; a=100; p=&a; /* (*&a) 先进行&a运算,得a的地址 阅读全文
posted @ 2023-04-24 18:10 opensmarty 阅读(1649) 评论(0) 推荐(0)
摘要:1、问题概述 在使用gcc编译c++代码时会出现undefined reference to `std::cout',如编译如下代码: #include<iostream> using namespace std; int main() { cout<<"Hello world!"; return 阅读全文
posted @ 2023-04-24 18:03 opensmarty 阅读(1999) 评论(0) 推荐(0)
摘要:C++ STL中的verctor好比是C语言中的数组,但是vector又具有数组没有的一些高级功能。与数组相比,vector就是一个可以不用再初始化就必须制定大小的边长数组,当然了,它还有许多高级功能。 1.头文件 #include <vector> 2.初始化 如果vector的元素类型是int, 阅读全文
posted @ 2023-04-23 19:28 opensmarty 阅读(1507) 评论(0) 推荐(0)
摘要:std::string::nposstd::string::npos是一个常数,它等于size_type类型可以表示的最大值,用来表示一个不存在的位置,类型一般是std::container_type::size_type。 定义static const size_type npos = -1; # 阅读全文
posted @ 2023-04-23 15:49 opensmarty 阅读(285) 评论(0) 推荐(0)
摘要:一、关于npos的定义 在MSDN中有如下说明:basic_string::nposstatic const size_type npos = -1;//定义The constant is the largest representable value of type size_type. It i 阅读全文
posted @ 2023-04-23 15:40 opensmarty 阅读(2521) 评论(0) 推荐(1)