C++ 将数据附加到C+中的数组+;
如何将数据(norm_b)插入数组,如Python中的C++ 将数据附加到C+中的数组+;,c++,arrays,C++,Arrays,如何将数据(norm_b)插入数组,如Python中的append?您只能将值“附加”到可以动态增长大小的数据结构中。如果大小固定,则为类c数组。您可以尝试使用一个std::vector,它有一个push_-back方法,相当于python-append方法 注意:代替C类数组,考虑使用 STD::Labe,这是C++ STL的一部分,让您在其上使用STL算法。 < P>数组的大小不会在其生命周期内改变。因此,无法插入(或删除)元素 相反,可以做的是动态分配一个数组,在插入时,分配一个更大的数组
append
?您只能将值“附加”到可以动态增长大小的数据结构中。如果大小固定,则为类c数组。您可以尝试使用一个std::vector
,它有一个push_-back
方法,相当于python-append方法
注意:代替C类数组,考虑使用<代码> STD::Labe<代码>,这是C++ STL的一部分,让您在其上使用STL算法。
< P>数组的大小不会在其生命周期内改变。因此,无法插入(或删除)元素 相反,可以做的是动态分配一个数组,在插入时,分配一个更大的数组,从旧数组复制元素,然后可以取消分配,或者至少这是一般的想法;我跳过了实现细节。这种数据结构称为可调整大小的数组。标准库实现了可调整大小的数组:std::vector
谢谢大家
解决
更新:
double b[3] = {3,3,4};
for(int i=0;i<3;i++) {
cout<<b[i]<<" "<<endl;
}
int sum = 0;
for(int i=0;i<3;i++) {
sum += b[i];
} cout<<"\n"<<sum<<endl;
for(int i=0;i<3;i++) {
double norm_b = b[i]/sum;
cout<<norm_b<<endl;
}
#包括
向量向量机;
对于(inti=0;i,因为您提到了Python,所以有更好的库类和算法更接近于您可能从Python中使用的库类和算法
#包括
#包括
#包括
void main(){
std::vector b{3,3,4};//Init vector
//如果编译器支持C++11,则可以使用范围
用于(自动值:b)
{
std::cout您可以使用vector作为附加数据,您可以随意使用。要使用vector,您必须包含头文件名vector。下面是代码:
#包括
#包括
使用名称空间std;
int main()
{
//首先声明一个向量
向量;
整数和=0;
对于(int i=0;i如果您无法更改嵌入式数组的大小,请使用std::vector
代替您想要的是std::vector
,而不是C型数组。当目标是调整大小时,为什么要谈论std::array
disturbing@bruno在第一行给出固定大小的数组。显然,std::vector
是正确的解决方案关于。我提到std::array
作为第一行声明的替代方案,我认为你必须更清楚,比如当size if常量而不是C-like时……你是对的@bruno:)问题也不是那么清楚(如果你开始分配固定大小的数组,那么谈论动态大小的向量对我来说没有多大意义。
#include <vector>
vector<double> vec;
for(int i=0;i<3;i++) {
vec.push_back(b[i]/sum);
cout<<vec[i]<<endl;
}
you can use vector for append data as more as you like.For use vector you have to include a header file name vector.Here the code below:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
//declare a vector first
vector<double>v;
int sum = 0;
for(int i=0;i<3;i++)
{
sum += b[i];
}
for(int i=0;i<3;i++)
{
vec.push_back(b[i]/sum);
cout<<vec[i]<<" "<<endl;
}
return 0;
}