城固网站建设,小程序开发公司推选北京华网天下,网络公司网站建设服务,wap手机网站 作用在C中当需要对某个容器或数组进行遍历时我们可以使用以下语句#xff0c;c将会被赋值为s中的元素 for(char c:s)://s可以是任何满足条件的容器或数组for(int c:s):for(double c:s):for(float c:s):在C中我们来区分std::vector numbers {1, 2, 3, 4, 5};和std::int numbers[] …在C中当需要对某个容器或数组进行遍历时我们可以使用以下语句c将会被赋值为s中的元素 for(char c:s)://s可以是任何满足条件的容器或数组for(int c:s):for(double c:s):for(float c:s):
在C中我们来区分std::vector numbers {1, 2, 3, 4, 5};和std::int numbers[] {1, 2, 3, 4, 5};区别。
#include iostream
#include vectorint main() {std::vectorint numbers {1, 2, 3, 4, 5};// 使用范围-based for循环遍历vectorintfor (int num : numbers) {std::cout num ;}return 0;
}#include iostreamint main() {int numbers[] {1, 2, 3, 4, 5};// 使用范围-based for循环遍历数组for (int num : numbers) {std::cout num ;}return 0;
}区别 动态大小 vs. 静态大小: std::vector numbers {1, 2, 3, 4, 5};std::vector是一个动态大小的容器可以在运行时动态添加或删除元素。 int numbers[] {1, 2, 3, 4, 5};这是一个静态大小的数组一旦定义了大小就无法在运行时更改数组的大小。 内存管理: std::vector自动管理其内部存储包括内存分配和释放。 数组int numbers[]需要手动管理其内存没有自动内存管理功能。如果需要动态大小的数组应该使用动态分配的数组或者std::vector。 传递方式: std::vector是一个类对象传递时会复制整个容器。对于大型容器这可能会导致性能开销。 数组名numbers[]在大多数上下文中会被解释为指向数组的指针因此传递时实际上传递的是指向数组首元素的指针。 边界检查: std::vector会在运行时执行边界检查可以使用at()方法来访问元素并进行边界检查。 数组没有内置的边界检查如果访问超出数组边界的索引可能会导致未定义的行为 在C 中.size()和.sizeof()区别 .size() 在C的标准库容器如std::vector, std::array, std::string等中用于获取容器中元素的数量的方法是.size()。这是一个成员函数返回容器中元素的数量。 例如对于std::vector numbers;你可以使用numbers.size()来获取该向量中的元素数量。 sizeof 操作符 sizeof是C中的一个操作符用于返回其操作数的大小以字节为单位。sizeof是一个编译时运算符用于返回编译时确定的对象或类型的大小。 例如sizeof(int)将返回int类型的大小通常是4个字节而sizeof(numbers)将返回numbers数组的总大小以字节为单位。